我正在开发一个 Django 项目,管理员可以在其中使用 TinyMCE 设置一些内容的样式。除了烦人的细节外,一切正常。
对于某些模型,碰巧在富文本模式下编辑的字段需要显示在更改列表中。发生的情况是,此字段随即与其 HTML 标记一起显示。我想做的是拥有相当于
{{ field|striptags }}
在更改列表中。
不幸的是,事情并不像覆盖管理模板那么简单,因为内容已经到达用管理 HTML (<td>
) 包装的模板。所以如果我简单地替换
<tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
与
<tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item|striptags }}{% endfor %}</tr>
在“admin/templates/change_list_results.html”中,结果表显示为无样式。
How can I have a decent preview of these fields in the change list?
最佳答案
您可以在您的模型上创建一个额外的属性来返回剥离的字段并在 list_display
中使用它。
class YourClass(models.Model):
....
@property
def html_stripped(self):
from django.utils.html import strip_tags
return strip_tags(self.html_field)
并在您的 ModelAdmin
中:
list_display = ['html_stripped', ...]
list_display
的文档提及其他一些选项,并为您提供有关此主题的更多详细信息。
关于python - Django 管理中的富文本编辑器 - 隐藏更改列表中的 HTML 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294593/