Здравствуйте!Помогите пожалуйста с проблемой!Вообщем при добавлении комментариев на сайте ничего не происходит, т.е я жму на кнопку добавить комментарий и ничего не происходит и текст комментария остается в этом поле,НО потом я решил добавить комменты через админку,они отображались на сайте.У меня была url привязка leave_comment,она отвечала за добавление комментов,так же у меня была вьюшка с этой привязкой. Я решил поменять название привязки,но потом решил обратно,все сделал как было,но комментарии не добавляются(именно через сайт не могу добавить,если через админку,то все норм и они отображаются),до того момента как я поменял навзание привязки все добавлялось!
Вот код urls.py(приложения):
from django.urls import path
from . import views
app_name = 'articles'
urlpatterns = [
path('', views.index, name = 'index'),
path('<int:article_id>/', views.detail, name = 'detail'),
path('<int:article_id>/leave_comment/', views.leave_comment, name = 'leave_comment')
]
Вот код views.py(приложения)
from django.http import Http404,HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from .models import Article, Comment
def index(request):
test = Article.objects.order_by('-pub_date')[:5]
return render(request,'articles/list.html',{'test':test})
def detail(request,article_id):
try:
a = Article.objects.get(id = article_id)
except:
raise Http404('Статьи не найдены')
test2 = a.comment_set.order_by('-id')[:10]
return render(request,'articles/detail.html',{'article': a, 'test2<code lang="html">
</code>': test2})<code lang="html">
</code>
def leave_comment(request,article_id):
try:
a = Article.objects.get(id = article_id)
except:
raise Http404('Статьи не найдены')
a.comment_set.create(author_name = request.POST['name'],comment_text = request.POST['text'])
return HttpResponseRedirect(reverse ('articles:detail', args = (a.id,)))
А вот код шаблона (detail.html):
{% extends 'base.html' %}
{% block title %}{{article.article_title}}{% endblock %}
{% block content %}
<h1>{{article.article_title}}</h1>
<h2>{{article.article_text}}</h2>
<em>{{article.pub_date}}</em>
<hr>
{% if test2 %}
{% for c in test2 %}
<p>
<strong>{{c.author_name}}</strong>
<p>{{c.comment_text}}</p>
{% endfor %}
</p>
{% else %}
Комментарии не найдены!
{% endif %}
<hr>
<form action="{% url 'articles:leave_comment' article.id %}" method="POST"></form>
{% csrf_token %}
<input type = 'text' required placeholder="Введите имя", name = 'name'><br>
<textarea name="text" required placeholder="Текст комментария" id="" cols="30" rows="10"></textarea><br>
<button type = 'submit'>Добавить комментарий</button>
</form>
{% endblock %}
КОД СТРАНИЦЫ В ГУГЛ
<!DOCTYPE html>
<html lang = 'en' >
<head>
<meta charset="UTF-8">
<title>Неудачный порт На ПК</title>
</head>
<body>
<h1>Неудачный порт На ПК</h1>
<h2>Студия признала, что анизотропная фильтрация на PC пока не работает, несмотря на присутствие в настройках графики соответствующего параметра. Решение этой проблемы имеет высокий приоритет для команды.
Ещё одна первоочередная проблема — на «некоторых системах» наблюдаются «кратковременные подвисания во время путешествий по миру, при обновлении элементов интерфейса или квестов, а также смене ракурса.</h2>
<em>10 августа 2020 г. 0:02</em>
<hr>
<p>
<strong>Миша</strong>
<p>Коммент</p>
</p>
<hr>
<form action="/articles/2/leave_comment/" method="POST"></form>
<input type="hidden" name="csrfmiddlewaretoken" value="P8NbB4mYZToyhDcA71DXOCUUgRlXAufhUPiRWT0yGznSFqUaiqLo5zhJ5Yzt9vPH">
<input type = 'text' required placeholder="Введите имя", name = 'name'><br>
<textarea name="text" required placeholder="Текст комментария" id="" cols="30" rows="10"></textarea><br>
<button type = 'submit'>Добавить комментарий</button>
</form>
</body>
</html>