我已将CKEditor添加到我的django项目中,但文本仍显示HTML标签。尽管我在我的内容变量之后插入了安全过滤器。我是否错过了不能逃脱HTML标记的原因?
这是我的模特:
# Use only if 'None' is an actual string in your data
df = df.replace('None', np.nan)
df['suburb'] = df['suburb'].where(~df.suburb.isnull(), df.street.str.split().str[1])
df['postcode'] = df['postcode'].where(~df.postcode.isnull(), df.street.str.split().str[2])
df['street'] = df['street'].str.split().str[0]
df.head()
| id | street | suburb | postcode | timeStamp |
|----|--------|--------|----------|-----------|
| A1 | aa | BB | 001 | 2016 |
| A1 | aa | BB | 001 | 2019 |
df.drop_duplicates(subset=['id', 'street', 'suburb', 'postcode'], keep='last')
| id | street | suburb | postcode | timeStamp |
|----|--------|--------|----------|-----------|
| A1 | aa | BB | 001 | 2019 |
这是我的表单模板:
class Post(models.Model):
title = models.CharField(max_length = 100)
content = RichTextUploadingField(blank=True, null=True)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg', upload_to='post_pics')
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
这是我的帖子详细信息模板:
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class='border-bottom mb-4'>New Post</legend>
{{ form.media }}
{{ form | crispy }}
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-outline-info">Upload</button>
<a type="submit" class="btn btn-outline-secondary" href="/">Cancel</a>
</div>
</form>
在我的表单页面上,它使我可以看到应该显示的文本。但是,在详细视图模板上,它仍显示HTML标签和样式,而不是格式文本。
答案 0 :(得分:0)
我弄清楚了原因。经过一番搜索后,我意识到变量内容被包装到Image3D image2{10, std::vector<std::vector<char>>(10, std::vector<char>(10, 0))};
Image3D image2 = Image3D(10, std::vector<std::vector<char>>(10, std::vector<char>(10, 0)));
标签中的变量发送到浏览器,而嵌套的段落标签是不正确的HTML。
答案 1 :(得分:0)
我也面临同样的问题,问题是:
当你有多个 CKEditor 内容要显示在同一个网页中时,那么只有最上面的一个可以正常显示,而其余的“<p {{ content_of_ckeditor|safe }}</p>
”会显示一些 HTML 文本......不是正确的内容。
在你的 views.py 中,在将 CKEditor 内容保存到模型之前,如果你有这样的:
content_save = ckeditorForm(request.POST, request.FILES)
content_save = ModelName(content=content, user=user, post=post)
content_save.save()
然后就不能正常显示了,改成
content_save = ckeditorForm(request.POST, request.FILES)
content_save = ModelName(content=content, user=user, post=post)
content_save = content_save['content'].value() #add this
content_save.save()
因此,当您在模板中使用 <p {{content_of_ckeditor|safe}} </p>
时,它会正确显示。