我为所有有一个名为is_active
字段的类编写了一个管理类的基类。它允许用户查看表的记录以及is_active
字段,这样他们就可以看到哪个记录是活动的,并且可以编辑它。在
对于我的模型中的大多数类,都有一个名为name
的字段,因此我可以轻松地在admin.py
中编写两行代码,并有一个自定义的管理表示,但问题是对于没有名为name
的字段的类,所以我必须在list_display
中使用不同的字段。由于这些类的数量很高,所以我正在寻找一种解决方案来动态获取必须在list_display
中的字段的名称。任何解决这个问题的想法都将不胜感激。在
模型.py:
class BaseAdmin(admin.ModelAdmin):
list_display=('id','name','is_active')
list_editable = ('is_active',) # this MUST only contain fields that also are in "list_display"
search_fields=('name',)
class ClassA(models.Model):
name=models.CharField(max_length=20, blank=False, unique=True,)
is_active=models.BooleanField(default=True,)
def __str__(self):
return self.name
class ClassB(models.Model):
my_field=models.CharField(max_length=20, blank=False, unique=True,)
is_active=models.BooleanField(default=True,)
def __str__(self):
return self.my_field
py管理员
^{pr2}$
您正在查找^{cd1>}https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_list_display
将此功能与^{cd2>}(即^{cd3>}在^{{cd1>}方法中)一起使用,以基于模型创建动态列表显示。
请注意,我个人建议不要将此自动化烘焙到^{cd5>},并分别定义子类^{{cd6>}s之间的不同之处(在本例中,^{cd7>})。更明确和清晰。不过,这是纯粹的观点。
相关问题 更多 >
编程相关推荐