Django管理自定义列数据格式
在my admin.ModelAdmin中,我添加了一个从另一个表检索描述的方法:Django管理自定义列数据格式,django,django-admin,Django,Django Admin,在my admin.ModelAdmin中,我添加了一个从另一个表检索描述的方法: def get_nome_cli(self, obj): codice_cli = obj.cli_codice try: description= Cli.objects.filter(codice=codice_cli) except: nome='not found' return '&l
def get_nome_cli(self, obj):
codice_cli = obj.cli_codice
try:
description= Cli.objects.filter(codice=codice_cli)
except:
nome='not found'
return '<a>{}></a>'.format(description)
def get_nome_cli(self,obj):
codice_cli=obj.cli_codice
尝试:
description=Cli.objects.filter(codice=codice\u Cli)
除:
nome='找不到'
返回“{}>”。格式(说明)
它可以工作,但显示的数据如下所示:
<a>[<Cli: gigilatrottola - 2>]></a>
<a> gigilatrottola - 2 </a>
[]>
我错过了什么让它看起来像这样:
<a>[<Cli: gigilatrottola - 2>]></a>
<a> gigilatrottola - 2 </a>
Gigilatotola-2
直接给出字段名而不是对象
比如:
说明(字段名)
假设您的字段名是des
return '<a>%s - %s</a>', %(description.des, desctiprion.id)
返回'%s-%s',%(description.des,desctiprion.id)
考虑到每个codice\u Cli
只能过滤一个Cli
对象,您可能需要重构代码以使用queryset方法。其次,如果结果是空列表,则filter()
方法不会引发异常,因此在这种情况下try/except块是无用的
def get_nome_cli(self, obj):
codice_cli = obj.cli_codice
try:
description = Cli.objects.get(codice=codice_cli)
except Cli.DoesNotExist:
return 'Cli not found'
return '<a>{}></a>'.format(description)
get_nome_cli.allow_tags = True