Django管理サイトで別テーブルの情報にフィルタをかけたい。
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']
よろしくお願いします。