Django 不支持从 list_display 或 list_filter 获取外键值(例如 foo__bar)。我知道您可以创建一个模块方法作为 list_display 的解决方法,但是我将如何为 list_filter 做同样的事情呢?谢谢。
最佳答案
好吧,文档说您可以使用 ForeignKey
list_filter
中的字段类型:
http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter
一个例子:
# models.py:
class Foo(models.Model):
name = models.CharField(max_length=255)
def __unicode__(self):
return self.name
class Bar(models.Model):
name = models.CharField(max_length=255)
foo = models.ForeignKey(Foo)
# admin.py:
class BarAdmin(admin.ModelAdmin):
list_filter = ('foo')
如果您想通过相关模型中的字段进行过滤,则有一个补丁可以使这项工作(看起来可能会合并到 1.2 中):
http://code.djangoproject.com/ticket/3400
关于Django:list_filter 和外键字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2065036/