2

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 が初めてで、私の例でこれを実装する方法がわかりません。

前もって感謝します

4

1 に答える 1