开发者

django-ckeditor: uncaught exception using inlines

I have two simple models Question and Choice (one question has multiple choices). I have used inline formset to add Choices along with adding Questions (through modelAdmin functionality).

class Question(models.Model):
    category = models.CharField(max_length=50)
    question_text = RichTextField(max_length=2000, verbose_name="Question Text", blank=True)
开发者_开发知识库
class Choice(models.Model):
    question = models.ForeignKey(Question)
    description = RichTextField(max_length=500, verbose_name="Choice Description")
    is_correct = models.BooleanField(default=False)

Now the fields of Choice and Question are RichTextField defined in django-ckeditor. The issue is when I click on "Add another choice" I get an uncaught exception: [CKEDITOR.editor] The instance "id_choice_set-__prefix__-description" already exists, which disrupts the ckeditor functionality.

Any ideas/suggestions how to fix this issue? I think some JS tweaks can help but I have a very limited knowledge in JS/Jquery

Thanks


I encountered similar issue and found a fix here.

It's caused by Inline usage,try install the forked version to have try.

Though 6 months pass,hope this help those who got similar issue.


Line 66 of django-ckeditor's widgets.py is where your problems seems to originate.

Essentially it seems, the substitution made for final_attr['id'] is where you are getting the __prefix__ from. Looking through the framework source code, line 151 of Django's forms/formsets.py is where that value comes from. Also, from the source, it seems that value will be replaced by the default prefix i.e. 'form' in all cases except if you are using _get_empty_form() incorrectly somehow.

It would be helpful if you provide/answer the following:

  1. Once your page is rendered, but before you "Add another choice", post the tag attributes from your rendered formset (incl. the management form).

  2. Are you using _get_empty_form() directly at any point in your code?

  3. Code for the view where you create the formset and where you render it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜