Здравствуйте.
Не получается правильно связать комментарии к постам. Сейчас получается, что комментарий к одной новости отображается на всех других новостях. Нужно чтоб был каждый коммент к своей новости.
модель:class Comments(models.Model):
class Meta():
db_table = 'comments'
verbose_name = 'Комментарий'
verbose_name_plural = 'Комментарии'
comments_text = models.TextField(verbose_name='Текст комментария')
comments_blogpost = models.ForeignKey(BlogPost)
вьюха: вывод всех новостей и фильтр комментовdef full_slug(reguest, slug):
comment_form = CommentForm
form = comment_form
comments = Comments.objects.filter()
te = get_object_or_404(BlogPost, slug=slug)
return render(reguest, 'full.html', {'te': te, 'form': form, 'comments': comments, 'username': auth.get_user(reguest).username})
вьюха: Добавления комментовdef addcomment(reguest, one_id):
if reguest.POST and ('pause' not in reguest.session):
form = CommentForm(reguest.POST)
if form.is_valid():
comment = form.save(commit=False)
comment.comments_blogpost = BlogPost.objects.get(id=one_id)
form.save() # Сохраняем
return_path = reguest.META.get('HTTP_REFERER','/')
reguest.session.set_expiry(10) .
reguest.session['pause'] = True
return redirect(return_path)
урлы:url(r'^(?P<slug>[-\w]+)/$', views.full_slug, name='full_slug'), # Вывод новостей
url(r'^addcomment/(?P<one_id>\d+)/$', views.addcomment), # Добавление коммента
В общем во вьюхе не могу прописать фильтр в этой строке comments = Comments.objects.filter() , чтоб коммент был закреплен к нужной новости. Сейчас получается, что во всех новостях выходят все комменты.
Пробовал так:
comments = Comments.objects.filter(comments_blogpost_id=slug), но получаю ошибку. Вывод должен быть только по id, типа такого
comments = Comments.objects.filter(comments_blogpost_id=one_id)
Но если использовать параметр one_id вместо slug, то будут ссылки в новостях типа такого full/22 т.е. не человекопонятный урл.
Подскажите где ошибка у меня? Я только изучаю джанго и возможно наделал кучу ошибок и запутался.