Django管理サイトで外部キーで紐づいている別テーブルの情報を紐づけたい。

先ほど、上記の質問で外部キーに設定している
↓のテーブルがあるときに
別テーブルの情報を引っ張ってくる方法を教えてもらいました。

model.py

from django.db import models
class ShopUserRelation(models.Model):
    shop_id = models.ForeignKey('Shop', db_column = 'shop_id')
    user_id = models.ForeignKey('User', db_column = 'user_id')

class Shop(models.Model):
    name        = models.CharField(max_length = 128)

class User(models.Model):
    name        = models.CharField(max_length = 128)

admin.py

class ShopUserAdmin(admin.ModelAdmin):
    list_display = ('id', 'shop_name', 'user_name')
    def shop_name(self, obj):
        return obj.shop_id.name
    shop_name.short_description = 'Shop Name'

    def user_name(self, obj):
        return obj.user_id.name
    shop_name.short_description = 'User Name'

この追加したshop_nameとuser_nameをフィルタしたいのですが、可能でしょうか。
下記のようなコードをadmin.pyに追記すると、
idではフィルタをかけることが可能ですが、shop_nameとuser_nameではフィルタすることはできませんでした。

list_filter  = ['id', 'shop_name', 'user_name']

よろしくお願いします。