admin.RelatedOnlyFieldListFilter不适用于多级关系

时间:2016-01-07 11:38:53

标签: django django-admin django-filter

我正在研究Django管理员。我有3个型号

class University(models.Model)
    ...

class Institution(models.Model):
    university = models.ForeignKey(University)

class Course(models.Model):
    institution = models.ForeignKey(Institution)

在管理员中,我希望list filtred具有按大学筛选的功能,但仅显示具有已添加课程的机构的大学。我用

class CourseAdmin(admin.ModelAdmin):
    list_filter = (
        ('institution__university',admin.RelatedOnlyFieldListFilter),
        ...
    )

我收到错误

Cannot resolve keyword 'university' into the field. Choices are ...

我怎样才能实现这一目标?请帮忙

提前致谢

2 个答案:

答案 0 :(得分:0)

您收到错误,因为您列出的项目与字段无关:university,它们与institution有关系。

如果你改变:

('institution__university',admin.RelatedOnlyFieldListFilter)

为:

('institution',admin.RelatedOnlyFieldListFilter)

或可能:

('university',admin.RelatedOnlyFieldListFilter)

它应该摆脱错误。但是,它不会特别针对您希望它做的事情。

答案 1 :(得分:0)