IntegrityError в / comments / post / в комментариях django - PullRequest
0 голосов
/ 01 февраля 2012

Я уже некоторое время использую встроенный фреймворк для комментариев Django, и он работал абсолютно нормально. Поскольку после тестирования мы находимся на этапе разработки, мы не пробовали его.

Но вчера я опубликовал комментарий, просто для удовольствия и приземлился с этой ошибкой

IntegrityError at /comments/post/
(1048, "Column 'content_type_id' cannot be null")
  1. Это не относится к какой-либо конкретной модели, но происходит в зависимости от того, какая модель опубликована в комментарии.
  2. Эта ошибка не появляется, когда комментарий опубликован как анонимный пользователь
  3. Комментарий публикуется

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

Я знаю, что поместил очень мало информации, но любая помощь будет очень признательна.

1 Ответ

1 голос
/ 01 февраля 2012

Не уверен, исходя из предоставленной вами информации, почему вы получите эту ошибку, но обычно пакет comments использует общие внешние ключи из пакета contenttypes, чтобы связать комментарий с тем, к чему он «принадлежит». Ошибка, которую вы получаете, заключается в том, что (по любой причине) то, к чему «принадлежит» комментарий, не определено при сохранении комментария.

Форма по умолчанию для отправки комментариев фактически включает контекстный объект, которому он должен «принадлежать», и передает эти данные вместе с POST при отправке комментария. Обычно эту форму можно отобразить с помощью {% render_comment_form %} тега шаблона и передать владельца:

{% render_comment_form for [owner] %}

Где [owner] объект, которому будет принадлежать комментарий.

Или вы можете использовать тег {% get_comment_form %}, чтобы иметь возможность настроить форму:

{% get_comment_form for [owner] as form %}

Если вы использовали совершенно нестандартный способ включения формы, вам следует убедиться, что вы передаете все скрытые значения, которые любой из этих двух тегов будет включать по умолчанию.

Кроме того, если вы настраиваете форму, важно установить действие формы с помощью {% comment_form_target %}.

Надеюсь, этого будет достаточно, чтобы помочь вам в дальнейшем устранении проблемы.

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