我们假设我有以下内容:
models.py:
VALUE_CHOICES = (('0', 'ZERO'),
('1', 'ONE'))
class ModelA(models.Model):
def val(self):
return self.model_b.value or ''
class ModelB(models.Model):
modela = models.OneToOneField(ModelA, related_name="model_b", null=False)
value = models.CharField(choices = VALUE_CHOICES)
和
admin.py:
class ModelAAdmin(ModelAdmin):
list_display = ['val']
当我尝试在管理网站中显示我的ModelA
列表时,它会显示0
或1
而非ZERO
或ONE
。
我如何修改它以使其显示来自管理网站列表中VALUE_CHOICES
的人类可读名称?
答案 0 :(得分:1)
来自docs,以及字段val
,
class ModelAAdmin(ModelAdmin):
list_display = ['get_val_display']
这应该可以胜任。
[ OP编辑]
我没有成功让它像这样工作,但这种方法是一个非常好的建议。以下是我使用此get_FOO_display()
方法的方法(它就像魅力一样)。
我只修改了我的ModelA.val()
方法:
def val(self):
return self.model_b.get_value_display()