Я учусь создавать приложение для вопросов и ответов, используя Django. Я настроил модели для постов, комментариев и пользователей. Я не могу успешно связать id
для сообщений с комментариями.
Я попытался связать комментарии с сообщениями, безуспешно переопределяя ModelForm
на Django.
Это в моем views.py
файле:
class CommentCreateView(LoginRequiredMixin, CreateView):
model = Comment
fields = ['comment']
def form_valid(self, form):
form.instance.author = self.request.user
form.instance.post_id = self.kwargs['post_id']
return super(CommentCreateView, self).form_valid(form)
У моего models.py есть модель для комментариев:
class Comment(models.Model):
cid = models.AutoField(primary_key=True)
author = models.ForeignKey(User, on_delete=models.CASCADE)
post_id = models.ForeignKey(Post, on_delete=models.CASCADE)
comment = models.TextField()
comment_date = models.DateTimeField(default=timezone.now)
def save(self, *args, **kwargs):
super(Comment, self).save(*args, **kwargs)
def __str__(self):
return self.comment
def get_absolute_url(self):
return reverse('blog-home')
и мой путь URL выглядит следующим образом:
path('comment/<int:post_id>', PostCommentListView.as_view(), name='user-comments')
Я ожидаю, что комментарии будут связаны с постами через ForeignKey
. Но когда я пытался сделать то же самое, я получаю ошибку, как описано ниже:
ValueError в / post / 11 / comment /
Невозможно присвоить «11»: «Comment.post_id» должен быть экземпляром «Post».
Значение исключения:
Невозможно присвоить «11»: «Comment.post_id» должен быть экземпляром «Post».