我有这两个模型:
class Module(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=255)
class Subject(models.Model):
id = models.AutoField(primary_key=True)
module = models.ForeignKey(Module)
然后我创建了ModelAdmin:
class SubjectAdmin(admin.ModelAdmin):
list_display = ('module', 'name', 'enabled',)
list_filter = ('module', 'name',)
search_fields = ('module', 'name',)
但我不能按模块过滤或搜索。
答案 0 :(得分:8)
您注册了ModelAdmin吗?
admin.site.register(Subject, SubjectAdmin)
您可能还想尝试为模块提供__unicode__
方法,或使用关系跨越。
list_filter = ('module__name', 'name',)
# or...
# within Module
def __unicode__(self):
return self.name
答案 1 :(得分:4)
用于引用外键__
如果您想要模块名称的示例:
class Module(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(unique=True, max_length=255)
def __unicode__(self):
return self.name:
class SubjectAdmin(admin.ModelAdmin):
list_display = ('module', 'name', 'enabled',)
list_filter = ('module__name', 'name',)
search_fields = ('module__name', 'name',)