在Django的管理表单中显示HTML字段

时间:2011-08-19 17:48:24

标签: html django forms

我的Django模型中有一个charfield存储html元素,例如<a href='www.gooogle.com'>Google</a>

在管理员表单中,这些字段显示在文本类型的输入中。我想知道如何显示实际的HTML而不是在文本输入中?对于上面的示例,我想要的只是一个“Google”,因此当您点击它时,它会将您带到地址。我不希望管理员主持人看到HTML标记。

请注意,我已经使用list_display在管理列表视图中实现了此功能。我需要以详细信息的形式提供相同的功能。

提前致谢

1 个答案:

答案 0 :(得分:1)

我通过创建自己的小部件找到了解决方案。

class HtmlWidget(widgets.Widget):
  """A widget to display HTML in admin fields."""

  input_type = None # Subclasses must define this.

  def render(self, name, value, attrs=None):
    if value is None:
      value = ''
    return mark_safe(u'%s' % value)