python - Django 管理中的富文本编辑器 - 隐藏更改列表中的 HTML 标记

标签 python django django-admin

我正在开发一个 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/

相关文章:

django - 如何根据外部表中的值动态设置 django TabularInline 的 max_num?

python - (单元)测试python信号处理程序

python - FastAPI 如何管理 WFT 表单?

Python/Django UnicodeDecodeError 'ascii' 编解码器无法解码

python - 在 Django Crispy Forms 中使用 StrictButton

django - 适用于多对多字段的Django 1.2.1内联管理员

Django:在 View 或模板中检测管理员登录

python - Key 存在时出现 KeyError

Python argparse 在类型之前检查选择

Django 基于类的 View : How to check an object value before returning view