如何在django管理员的changeview中添加自定义HTML?

时间:2010-10-30 21:35:55

标签: django-admin

当我描述模型的管理选项时,可以将任何方法放在'list_display'中,然后我们可以添加'allow_tags = True'并获取HTML。 “changeview”形式有没有相同的选项? 我可以更改表单的模板,但有一些返回HTML的计算,所以将它们全部放到模板中并不是一个好主意。

class OrderAdmin(admin.ModelAdmin):
    list_display = ('__unicode__','render_html')

render_html是一种模型方法,它在listview中工作,将它放到“字段”中不起作用。

1 个答案:

答案 0 :(得分:0)

这是一个黑客但它应该有用。

 class OrderAdmin(admin.ModelAdmin):        
     def render_change_form(self, request, context, *args, **kwargs):
         context['adminform'].form.fields['somefield'].helptext= self.colored_name()
         return super(OrderAdmin, self).render_change_form(request, context, args, kwargs) 
     def colored_name(self):
         return '<span style="color: #%s;">%s %s</span>' % (self.color_code, self.first_name, self.last_name)
     colored_name.allow_tags = True