如何在Django中为我的博客文章进行HTML格式化?

3

我想直接从管理页面使用 HTML 格式创建博客文章。例如,从 models.py 中可以看到描述是一个 TextField。当我访问管理页面创建博客文章时,我希望能够添加 HTML 标签。因此,文本字段将包含 HTML 内容。在将博客文章呈现到 HTML 模板时,我希望它能将描述作为 HTML 文件读取,而不仅仅是文本字段。

models.py

from django.db import models

class Blog(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField()
    date = models.DateField()

管理页面上的博客描述

<HTML>
<body>
<p>Welcome to my first blog post!!</p>
</body>
</html>

blog.html

  <h1>{{ blog.title }}</h1>
  <hr>
  <p>{{ blog.description }}</p>

非常感谢您的帮助!


也许您可以利用JavaScript,然后创建那些HTML标签?如果我没记错的话,现在在HTML中,它是作为字符串出现还是没有渲染? - Shashank
是的,它作为一个字符串返回。但我不懂JavaScript :/。这可能吗? - Rohit Manjunath
你能试试这个吗:https://dev59.com/sGjWa4cB1Zd3GeqPqW7X#12416289 我认为它已经被回答了 :) - Shashank
1个回答

7
你可以使用Django的模板过滤器 |safe 进行渲染。这将禁用HTML片段的转义,因此它不再将例如 < 转换为 &lt;
<h1>{{ blog.title<b>|safe</b> }}</h1>
  <hr>
  <p>{{ blog.description<b>|safe</b> }}</p>

不过,你也许想看一下django-ckeditor包[Github],它提供了一个专门的字段、小部件等,以便在编辑文本时考虑呈现效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接