如何处理支持 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
获得了所需的功能和一些额外功能
我有一个带有 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