kel*_*fix 2 django django-admin
我有这两个模型:
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)
Run Code Online (Sandbox Code Playgroud)
然后我创建了ModelAdmin:
class SubjectAdmin(admin.ModelAdmin):
list_display = ('module', 'name', 'enabled',)
list_filter = ('module', 'name',)
search_fields = ('module', 'name',)
Run Code Online (Sandbox Code Playgroud)
但我无法通过模块过滤或搜索.
Jos*_*ton 10
你注册了ModelAdmin吗?
admin.site.register(Subject, SubjectAdmin)
Run Code Online (Sandbox Code Playgroud)
您可能还想尝试给模块一个__unicode__方法,或者使用关系跨越.
list_filter = ('module__name', 'name',)
# or...
# within Module
def __unicode__(self):
return self.name
Run Code Online (Sandbox Code Playgroud)
小智 6
对于引用外键使用 __
例如,如果您想要模块名称:
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',)
Run Code Online (Sandbox Code Playgroud)