[英]Filter by non field in Django
我想按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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.