2010-10-30 78 views
1

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

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

render_html是模型的一种方法,它在listview中工作,把它放到'fields'不起作用。

+0

什么样的计算?你总是可以使用JavaScript(在模板中),AJAX从服务器获取数据等。 – Jerzyk 2011-03-25 13:50:49

回答

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