def new_single(request, pk): # pk is id of article """ вызов полной сатьи и комментариев к ней """ new = get_object_or_404(News, id=pk) comment = Comments.objects.filter( new=pk ) # moderation=True) # все записи, где номер статьи = pk (и комментарии модерированы) if request.method == 'POST': form = CommentForm(request.POST) # пользователь уже ввел if form.is_valid(): # зная, кто на сайте и кто отправил форму, надо добавить юзера к модели комментариев form = form.save(commit=False) # Приостановили сохранение формы form.user = request.user # к полю форм.юзер присваиваем имя того, кто совершил запрос form.new = new # присвоим статью, на которой делали комментарий form.save() return redirect( new_single, pk ) # перенаправляем пользователя на изначальную страницу новости else: form = CommentForm() return render( request, "news/new_single.html", # передаем в ХТМЛ то, что в кавычках { "new": new, 'comments': comment, # выше первый метод вывода комментариев "form": form }) # потом перейти в УРЛ, который будет запускать эту функцию
def new_single(request, pk): """ Вывод полной статьи """ new = get_object_or_404(News, id=pk) comment = Comments.objects.filter(new=pk, moderation=True) if request.method == "POST": form = CommentForm(request.POST) if form.is_valid(): form = form.save(commit=False) form.user = request.user form.new = new form.save() return redirect(new_single, pk) else: form = CommentForm() return render(request, "news/new_single.html", {"new": new, "comments": comment, "form": form})
def new(request, pk): new = get_object_or_404(News, id=pk) comments = Comments.objects.filter(new=pk, moderation=True) if request.POST: comm_form = CommentForm(request.POST) if comm_form.is_valid(): comm_form = comm_form.save(commit=False) comm_form.user = request.user comm_form.new = new comm_form.save() return redirect('/news/' + str(pk)) else: comm_form = CommentForm() return render(request, 'news/new.html', { 'new': new, 'comments': comments, 'comm_form': comm_form })
def new_single(request, pk): """Вывод полной статьи """ new = get_object_or_404(News, id=pk) comment = Coments.objects.filter(new=pk, moderation=True) if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid: # нам нужно присвоить к тому user который сейчас на сайте добавил коментарий form = form.save( commit=False) # для это пиостанавливаем сохранение form.user = request.user # присваиваем запросить пользователя который сейчас на сайте form.new = new form.save() # сохраняем нашу форму return redirect( new_single, pk) # чтоб вернулась страница с полем ввода комментария else: form = CommentForm() return render(request, 'new_singl.html', { 'new': new, 'comment': comment, 'form': form })