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