作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 Django 中开发一个 ckeditor 评论框。我成功添加了评论框。但是现在我在编辑评论部分时遇到了问题。我想做的是当用户点击评论附近的编辑按钮时,会出现一个模式弹出窗口,编辑应该在那里进行。问题是 ckeditor 没有显示在模态中。显示的是带有数据库数据的普通文本字段,而不是 ckeditor。在控制台中显示“editor-element-conflict”错误。有解决办法吗?
最佳答案
我想通了!发生这种情况是因为您在页面上有几个 ckeditor 字段,并且它们具有相同的 ID,而 CKEditor 会感到困惑,因为它找到了一些具有相同 ID 的元素。解决方案:在生成页面时动态更改ID。
我不知道你的模型的结构,但我可以假设你的表单是这样定义的:
class Comment(models.Model):
text = models.TextField()
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = “__all__”
然后你需要像这样改变它:
from ckeditor.widgets import CKEditorWidget
class CommentForm(forms.ModelForm):
base_textarea_id = "id_text"
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.textarea_id_counter = 0
self.fields['text'].widget = CKEditorWidget(attrs={'id': self.get_textarea_next_id})
def get_textarea_next_id(self):
result = self.base_textarea_id + str(self.textarea_id_counter)
self.textarea_id_counter += 1
return result
class Meta:
model = Comment
fields = “__all__”
当然,它基于非常简化的模型示例,但我希望你明白了。
关于django - 如何在 Django 的同一个模板中使用两个 ckeditor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62381714/
我是一名优秀的程序员,十分优秀!