Проблема в сайте для блога. Django
У меня сайт для блога.
views.py
from django.shortcuts import render
def index(request):
latest_articles_list = Article.objects.order_by('-pub_date')[-5]
return render(request, 'articles/list.html', {'latest_articles_list': latest_articles_list})
def detail(request, article_id):
try:
a = Article.objects.get(id=article_id)
except Article.DoesNotExist:
raise Http404('Проект не найден')
latest_comment_list = a.comment_set.order_by('-id')[10]
return render(request, 'articles/detail.html', {'article': a, 'latest_comment_list': latest_comment_list})
def leave_comment(request, article_id):
try:
a = Article.objects.get(id=article_id)
except Article.DoesNotExist:
raise Http404('Проект не найден')
a.comments_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.project_title}}{* endblock *}
{* block content *}
<h2>{{article.project_title}}</h2>
<p>{{article.project_text}}</p>
<em>{{article.project_data}}</em>
<hr>
{% if latest_comment_list %}
{% for c in latest_comment_list %}
<p>
<strong>{{c.author_name}}</strong>
<p>{{c.comment_text}}</p>
</p>
{% endfor %}
{% else %}
Еще не кто не оценил! Будьте первым!
{% endif %}
<hr>
<form action="{% url 'articles:leave_comment' article.id %}" method="post">
{% csrf_token %}
<input type="text" required placeholder="Ваше имя" name="name"><br>
<textarea name="text" required placeholder="Очень интересно и круто!" cols="30" rows="10"></textarea><br>
<button type="submit">Оставить комментарий</button>
</form>
{* endblock *}
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')
]
Но это не увенчалось успехом:
django.core.exceptions.ImproperlyConfigured: URL route '<int:article_id/>' uses parameter name 'article_id/' which isn't a valid Python identifier.
Я поискал проблему тут, но все что я нашел это была проблема уже исправленная у меня (но если быть точнее не сделанная). И еще если может понадобится detail.html:
import datetime
from django.db import models
from django.utils import timezone
class Article(models.Model):
article_title = models.CharField("Проект", max_length = 15)
article_text = models.TextField("текст проекта")
article_k = models.ImageField('Изображение')
final_text = models.CharField("Конец", max_length = 20)
article_video = models.ImageField('Видео')
pub_date = models.DateTimeField('дата публикации')
def __str__(self):
return self.project_title
def ws(self):
return self.project_data >= (timezone.now - datetime.timedelta(days=7))
class Comment(models.Model):
article = models.ForeignKey(Article, on_delete= models.CASCADE)
author_name = models.CharField('имя автора', max_length = 50)
comment_text = models.CharField('текст комментария', max_length = 500)
def __str__(self):
return self.author_name
версия 5.0.3 (Django)