不确定这是否是一个好方法(这更多的是一个技术问题),但是如果我有一个带有
__str__
函数的 Django 模型,该函数组合了多个字段,该怎么办:
def __str__(self):
return f'{self.field0} {self.field1} {self.field2}'
在管理员中,我可能有
list_display
,如下所示:
list_display = ['field0', 'field1']
如何指定它以使用
__str__
函数返回的对象表示形式?
list_display = [<__str__() representation>, 'field0', 'field1']
默认情况下,如果您不在管理中指定
list_display
,它会给我我想要的。我不能两者兼得吗?
只需在 ModelAdmin 类中添加
list_display = ['__str__',]
即可完成此操作。基本上 __str__
是一个 python 方法,它给出了 python 类的表示,并且列表显示允许可调用。
list_display
属性 [Django-doc],这样就可以添加 str
:
def model_str(obj):
return str(model_str)
model_str.short_description = 'Object'
class MyModelAdminAdmin(admin.ModelAdmin):
# …
list_display = [model_str, 'field0', 'field1']
str(…)
函数的引用[python-doc]。