6 changed files with 91 additions and 9 deletions
File diff suppressed because one or more lines are too long
@ -0,0 +1,7 @@
|
||||
from django.urls import path |
||||
from . import views |
||||
|
||||
app_name = "comments" |
||||
urlpatterns = [ |
||||
path("<int:post_id>/leave_comment", views.leave_comment, name="leave_comment"), |
||||
] |
@ -1,3 +1,39 @@
|
||||
from django.shortcuts import render |
||||
from django.shortcuts import render, reverse |
||||
from posts.models import Post |
||||
from django.http import Http404, HttpResponseRedirect |
||||
from .models import Comment |
||||
from datetime import datetime |
||||
from django.core.exceptions import ObjectDoesNotExist |
||||
|
||||
# Create your views here. |
||||
|
||||
def leave_comment(request, post_id): |
||||
parent: Comment |
||||
|
||||
try: |
||||
post = Post.objects.get(id=post_id) |
||||
except ObjectDoesNotExist: |
||||
raise Http404("Пост не найден") |
||||
|
||||
# сделать проверку более вменяемой |
||||
parent_id = request.POST["reply_to"] |
||||
|
||||
if parent_id == "": |
||||
parent = None |
||||
else: |
||||
try: |
||||
parent = Comment.objects.get(id=parent_id) |
||||
# если комментарий, на который отвечает пользователь не к |
||||
# этой статье, то игнорируем поле ответа |
||||
if not parent in post.comment_set.all(): |
||||
parent = None |
||||
|
||||
except ObjectDoesNotExist: |
||||
parent = None |
||||
|
||||
post.comment_set.create( |
||||
author_name=request.POST["name"], |
||||
comment_text=request.POST["text"], |
||||
reply=parent, |
||||
) |
||||
|
||||
return HttpResponseRedirect(reverse("posts:detail", args=(post.id,))) |
||||
|
Loading…
Reference in new issue