Python Django中的非字段过滤

Python Django中的非字段过滤,python,django,filter,Python,Django,Filter,我想通过django应用程序的管理页面中的非字段列进行筛选。例如,我可以有以下内容: class Subject(models.Model) name = models.CharField(max_length=100) def __unicode__(self): return self.name class Student(models.Model) name = models.CharField(max_length=100) subjec

我想通过django应用程序的管理页面中的非字段列进行筛选。例如,我可以有以下内容:

class Subject(models.Model)
    name = models.CharField(max_length=100)
    def __unicode__(self):
        return self.name

class Student(models.Model)
    name = models.CharField(max_length=100)
    subject = models.ForeignKey(Subject)
    def __unicode__(self):
        return self.name

class School(models.Model)
    school = models.CharField(max_length=100)
    student = models.ForeignKey(Student)

    def subject(self)
        return self.student.subject.name
我将在admin.py中包含以下内容

class SchoolAdmin(admin.ModelAdmin):
  list_display = ('school', 'student', 'subject')
  list_filter = ('school', 'student', 'subject')

admin.site.register(School, SchoolAdmin)
然而,这将不起作用,因为我无法过滤的主题,因为它并不涉及一个领域?有人知道最好的方法吗?通过搜索,SimpleListFilter似乎可以做到这一点,但我对python和django还不熟悉,无法为我的示例解决如何实现这一点

提前感谢

试试这个:

class SchoolAdmin(admin.ModelAdmin):
  list_display = ('school', 'student__name', 'student__subject__name')
  list_filter = ('school', 'student__name', 'student__subject__name')

admin.site.register(School, SchoolAdmin)

你也可以这样做:
list\u filter=(…,student\u subject\u name)
谢谢,我知道会有一个简单的解决方案!它还不能让我接受答案,但我会在可能的时候接受