gpt4 book ai didi

django - 如何在 Django 的同一个模板中使用两个 ckeditor?

转载 作者:行者123 更新时间:2023-12-05 06:15:39 26 4
gpt4 key购买 nike

我正在尝试在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com