django-ckeditor: необработанное исключение с использованием inline - PullRequest
9 голосов
/ 28 февраля 2011

У меня есть две простые модели Вопрос и Выбор (один вопрос имеет несколько вариантов). Я использовал встроенный набор форм для добавления вариантов и вопросов (с помощью функции modelAdmin).

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)

Теперь полями выбора и вопроса являются RichTextField, определенные в django-ckeditor . Проблема в том, что когда я нажимаю «Добавить другой выбор», я получаю uncaught exception: [CKEDITOR.editor] The instance "id_choice_set-__prefix__-description" already exists, который нарушает функциональность ckeditor.

Есть идеи / предложения, как решить эту проблему? Я думаю, что некоторые настройки JS могут помочь, но у меня очень ограниченные знания в JS / Jquery

Спасибо

Ответы [ 2 ]

3 голосов
/ 29 января 2013

Я столкнулся с подобной проблемой и нашел исправление здесь .

Это вызвано использованием Inline , попробуйте установить раздвоенную версию, чтобы попробовать.

Хотя прошло 6 месяцев, надеюсь, это поможет тем, у кого возникли подобные проблемы.

2 голосов
/ 14 августа 2011

Строка 66 из django-ckeditor's widgets.py - это место, где, похоже, возникают ваши проблемы.

По сути, похоже, что замена, сделанная для final_attr['id'], - это то, где вы получаете __prefix__ от.Просматривая исходный код фреймворка, строка 151 из Django forms / formsets.py является источником этого значения.Кроме того, из источника кажется, что значение будет заменено префиксом по умолчанию , то есть 'form' во всех случаях, кроме случаев, если вы как-то неправильно используете _get_empty_form().

Это будетполезно, если вы предоставите / ответите на следующие вопросы:

  1. После того, как ваша страница будет отображена, но до того, как вы добавите другой выбор, опубликуйте атрибуты тега из вашего отображенного набора форм (включая форму управления).).

  2. Используете ли вы _get_empty_form() непосредственно в любой точке своего кода?

  3. Код для представления, в котором вы создаете набор форм игде вы делаете это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...