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