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
Откройте в браузере сетевой инспектор и посмотрите, какие запросы и куда у вас идут при отправке комментария через сайт.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 100 000 до 150 000 ₽
Junto Москва
от 100 000 до 140 000 ₽
Верфь Екатеринбург
от 70 000 до 140 000 ₽
02 окт. 2020, в 02:34
2500 руб./за проект
01 окт. 2020, в 21:13
600 руб./в час
01 окт. 2020, в 19:53
60000 руб./за проект