如何处理支持 HTML [Django] 的 CMS 字段

How to treat CMS fields that support HTML [Django]

我有一个带有 Post 对象的 Django 站点,如下所示:

class Post(models.Model):
    title = models.CharField(max_length=100,blank=True,null=True)
    body = models.TextField(blank=True,null=True)
    author = models.ForeignKey(User,blank=True,null=True)
    date_created = models.DateTimeField(default=timezone.now)
    date_updated = models.DateTimeField(auto_now_add=True)
    image = models.ImageField(upload_to=post_dir, blank=True, null=True)
    def __unicode__(self):
        return unicode(self.date_created.strftime('%Y-%m-%d %H:%M') + ' ' + self.title)

像这样输出 body TextField 以支持 HTML:

    {% if post.body %}
        <p>
            {{ post.body | safe }}
        </p>
    {% endif %}

我的问题是,由于管理员可以输入 HTML,这可能会使 html(例如 post.body = '</div></div>')变形,格式化和清理此文本字段的最佳方法是什么同时仍然允许用户输入 html?

我使用 django-ckeditor

获得了所需的功能和一些额外功能