Как добавить значение по умолчанию?

Подскажите пожалуйста как правильно определить атрибут initial? При попытке создать комментарий получаю ошибку IntegrityError ... null value in column "comment_article_id" violates not-null constraint. Коммент связан со статьей через поле comment_article.

views.py
class Comment(CreateView):
    model = Comment
    form_class = CommentForm
    http_method_names = ['post']
    template_name = 'article_detail.html'
    success_url = '/blog'
    initial = {'comment_article': self.object.pk}
  • Вопрос задан
  • 423 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Nerevar_soul
Если нужно редактировать объект то лучше пользоваться UpdateView. CreateView все же предназначен для создания новых объектов.
Если нужны значения по умолчанию при создании всех новых объектов, то в в модели можно прописать default для нужных полей.
Ответ написан
mututunus
@mututunus
Backend developer (Python, Golang)
Как-то так:
class CommentView(CreateView):
    def get_initial(self):
        initial = super(CommentView, self).get_initial():
        initial['comment_article'] = Article.objects.get(id=self.kwargs['article_id'])

        return initial
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы