LIke functoin view продолжает бросать DoesNotExist в /group/3/ после того, как второй пользователь в группе публикует пост, когда он нравится другому пользователю
В настоящее время я пытаюсь решить проблему с функцией like на странице группы, которую я создаю, проблема в том, что когда первый пользователь группы размещает пост на странице группы, другие пользователи могут комментировать и ставить лайк на его пост, но как только второй пользователь той же группы размещает пост, то когда пост получает лайк или комментарий, он выбрасывает ошибку DoesNotExist at /group/3/. Мне интересно, почему я получаю эту ошибку, потому что когда первый пользователь написал сообщение, он не выбрасывал эту ошибку, когда его сообщение понравилось или было прокомментировано, но ошибка появляется только когда другой пользователь той же группы написал сообщение и оно понравилось или было прокомментировано. Буду благодарен за помощь. Вот мой вид функции like.
def like(request, pk):
user = request.user
post = Post.objects.get(pk=pk)
group = GroupEx.objects.get(group=pk)
liked= False
like = Like.objects.filter(username=user, post=post,group=group)
if like:
like.delete()
else:
liked = True
Like.objects.create(username=user, post=post, group=group)
resp = {
'liked':liked
}
response = json.dumps(resp)
return redirect('group:main', pk=pk)
return HttpResponse(response,content_type = "application/json")
Вот мой взгляд на комментарий.
def comment(request, pk):
context = {}
user = request.user
post = get_object_or_404(Post, pk=pk)
group = get_object_or_404(GroupEx,pk=pk)
if request.method == 'POST':
form = NewCommentForm(request.POST)
if form.is_valid():
data = form.save(commit=False)
data.post = post
data.group = group
data.username = user
data.save()
return redirect('group:main', pk=pk)
else:
form = NewCommentForm()
context['form'] = form
return render(request,'group/grouptimeline.html',context)
Вот эта модель для группового поста .
class Post(models.Model):
group = models.ForeignKey(GroupEx, on_delete=models.CASCADE, related_name="group_post")
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE ,related_name="group_user")
description = models.TextField(max_length=500, blank=True)
pic = models.ImageField(upload_to='path/post/img' ,blank=True)
date_posted = models.DateTimeField(auto_now_add=True)
tags = models.CharField(max_length=100, blank=True)
class Comment(models.Model):
group = models.ForeignKey(GroupEx, on_delete=models.CASCADE, related_name="group_comment")
post = models.ForeignKey(Post, related_name='g_comments', on_delete=models.CASCADE, null=True, blank=True)
username = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='g_comments', on_delete=models.CASCADE,null=True)
comment = models.CharField(max_length=5000)
class Like(models.Model):
group = models.ForeignKey(GroupEx, on_delete=models.CASCADE, related_name="group_liker")
username = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='g_likes', on_delete=models.CASCADE)
post = models.ForeignKey(Post, related_name='g_likes', on_delete=models.CASCADE)
like_date = models.DateTimeField(auto_now=True)
comment_date = models.DateTimeField(auto_now_add=True)