Miha_Tarasov
@Miha_Tarasov
Мне 14 лет,люблю заниматься программированием)

Почему не могу добавить комментарии на сайте(python — django)?

Здравствуйте!Помогите пожалуйста с проблемой!Вообщем при добавлении комментариев на сайте ничего не происходит, т.е я жму на кнопку добавить комментарий и ничего не происходит и текст комментария остается в этом поле,НО потом я решил добавить комменты через админку,они отображались на сайте.У меня была 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>
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
tumbler
@tumbler Куратор тега Django
бекенд-разработчик на python
Откройте в браузере сетевой инспектор и посмотрите, какие запросы и куда у вас идут при отправке комментария через сайт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Junto Москва
от 80 000 до 120 000 ₽
Верфь Екатеринбург
от 70 000 до 140 000 ₽
Maroom Москва
от 100 000 до 160 000 ₽
29 сент. 2020, в 01:42
5000 руб./за проект
28 сент. 2020, в 22:46
1500 руб./за проект
28 сент. 2020, в 22:42
5000 руб./за проект