в базу комментарии отправляется а на сайт не получается, запуталась во views
models.py
class Comment(models.Model):
post = models.ForeignKey('Post', verbose_name='Статья', on_delete=models.CASCADE)
author = models.ForeignKey(User, verbose_name='Пользователь', on_delete=models.CASCADE)
message = models.CharField('Комментарий', max_length=150)
date = models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='Опубликован')
class Meta:
verbose_name = 'Комментарий'
verbose_name_plural = 'Комментарии'
def __str__(self):
len_title = 75
if len(self.message) > len_title:
titlestring = self.message[:len_title] + '...'
else:
titlestring = self.message
return titlestring
views.py
class PostCommentCreate(LoginRequiredMixin, CreateView):
model = Comment
template_name = 'blog/post_commentform.html'
fields = ['message', ]
def get_context_data(self, **kwargs):
context = super(PostCommentCreate, self).get_context_data(**kwargs)
context['post'] = get_object_or_404(Post, pk=self.kwargs['pk'])
return context
def form_valid(self, form):
form.instance.author = self.request.user
form.instance.post = get_object_or_404(Post, pk=self.kwargs['pk'])
return super(PostCommentCreate, self).form_valid(form)
def get_success_url(self):
return reverse('blog_post', kwargs={'pk': self.kwargs['pk'], })
html
Comments
{% for comment in post.blogcomment_set.all %}
{{ comment.author }} ({{ comment.date }}) - {{ comment.message }}
{% endfor %}
{% if user.is_authenticated %}
Добавить новый комментрий
{% else %}
LoginДобавить комментарий
{% endif %}