我想在 django admin 的 list_display 中显示一个表单,但我遇到了这个问题:
当我定义这样的东西时:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('foo', 'pagar_pase')
def pagar_pase(self, obj):
return """<form action="." method="post">Action</form> """
pagar_pase.description = 'Testing form output'
pagar_pase.allow_tags = True
结果是没有标签的操作,有什么想法如何解决这个问题吗?
thanks
这是文档中出现的内容。一些提示:
我认为你应该包括pagar_pase
在你的list_display
元组,而且你最好使用format_html
比三引号。
from django.utils.html import format_html
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
color_code = models.CharField(max_length=6)
def colored_name(self):
return format_html('<span style="color: #{0};">{1} {2}</span>',
self.color_code,
self.first_name,
self.last_name)
colored_name.allow_tags = True
class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'colored_name')
在这里,他们首先定义模型,然后创建一个ModelAdmin
在那里,他们将方法的名称包含在list_display
你缺少的。
你的代码应该是这样的:
class MyModelAdmin(admin.ModelAdmin):
list_display = ('foo', 'my_custom_display', 'pagar_pase')
def pagar_pase(self, obj):
# I like more format_html here.
return """<form action="." method="post">Action</form> """
pagar_pase.description = 'Testing form output'
pagar_pase.allow_tags = True
希望能帮助到你!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)