Django 管理自定义列数据格式
Django admin custom columns data format
在我的 admin.ModelAdmin 中,我添加了一个方法来从另一个 table:
中检索描述
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)
它有效,但它显示的数据如下:
<a>[<Cli: gigilatrottola - 2>]></a>
我缺少什么才能让它看起来像这样:
<a> gigilatrottola - 2 </a>
直接给字段名而不是对象。
喜欢:
描述。(字段名称)
假设你的字段名称是des,
return '<a>%s - %s</a>', %(description.des, desctiprion.id)
考虑到每个 codice_cli
只能过滤一个 Cli
对象,您可能需要重构代码以使用 get()
查询集方法。其次,如果结果为空列表,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
如果您希望在您的字段中有可点击的链接,您必须将 allow_tags
属性 设置为 True
。
不要忘记向您的模型添加 __unicode__()
或 __str__()
方法,这取决于您对 python 的喜好,这将提供您正在寻找的正确表示.
class Cli(models.Model):
# .....
def __unicode__(self):
return "%s - %s" % (self.description, self.pk)
在我的 admin.ModelAdmin 中,我添加了一个方法来从另一个 table:
中检索描述 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)
它有效,但它显示的数据如下:
<a>[<Cli: gigilatrottola - 2>]></a>
我缺少什么才能让它看起来像这样:
<a> gigilatrottola - 2 </a>
直接给字段名而不是对象。
喜欢: 描述。(字段名称)
假设你的字段名称是des,
return '<a>%s - %s</a>', %(description.des, desctiprion.id)
考虑到每个 codice_cli
只能过滤一个 Cli
对象,您可能需要重构代码以使用 get()
查询集方法。其次,如果结果为空列表,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
如果您希望在您的字段中有可点击的链接,您必须将 allow_tags
属性 设置为 True
。
不要忘记向您的模型添加 __unicode__()
或 __str__()
方法,这取决于您对 python 的喜好,这将提供您正在寻找的正确表示.
class Cli(models.Model):
# .....
def __unicode__(self):
return "%s - %s" % (self.description, self.pk)