Django выдает мне ошибку NoReverseMatch at /post/5/ при развертывании, в то время как локально все работает нормально.
Django без причины выдает мне ошибку NoReverseMatch. Все работает нормально в моей локальной среде, но как только я развертываю, я получаю эту ошибку. Я получил эту ошибку вчера, когда реализовал кнопку для добавления постов. Тогда я попытался найти ошибку, но не смог и сдался, но сегодня, когда я открыл страницу, ошибка исчезла. Теперь мне кажется, что всякий раз, когда я внедряю новую функцию, django без причины выкидывает эту ошибку, а потом она исправляется сама собой? Это сводит меня с ума, пожалуйста, я буду очень признателен, если кто-нибудь сможет помочь. Кроме того, это мое первое сообщение здесь, так что постарайтесь простить меня, если я сделаю ошибку в сообщении.
Ошибка: NoReverseMatch в /post/5/
Отзыв для 'post_delete' не найден. 'post_delete' не является допустимой функцией представления или именем шаблона.
urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.postList, name='post_list'),
path('post/new/', views.postNew, name='post_new'),
path('post/<int:pk>/', views.postDetail, name='post_detail'),
path('post/edit/<int:pk>/', views.postEdit, name='post_edit'),
path('post/delete/<int:pk>/', views.postDelete, name='post_delete'),
]
views.py
from django.shortcuts import render, redirect, get_object_or_404
from blog.models import Post
from blog.forms import PostForm
from django.utils import timezone
import datetime
# Create your views here.
def postList(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by(
"published_date").reverse()
context = {
'posts': posts
}
return render(request, "blog/post_list.html", context)
def postDetail(request, pk):
post = get_object_or_404(Post, pk=pk)
context = {
'post': post
}
return render(request, 'blog/post_detail.html', context)
def postNew(request):
if request.method == 'POST':
form = PostForm(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect("post_detail", pk=post.pk)
else:
return redirect("post_new")
else:
form = PostForm()
context = {
'form': form
}
return render(request, 'blog/post_edit.html', context)
def postEdit(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == 'POST':
form = PostForm(request.POST, instance=post)
if form.is_valid():
post = form.save(commit=False)
post.author = request.user
post.published_date = timezone.now()
post.save()
return redirect("post_detail", pk=post.pk)
else:
return redirect("post_edit", pk=post.pk)
else:
form = PostForm(instance=post)
context = {
'form': form
}
return render(request, 'blog/post_edit.html', context)
def postDelete(request, pk):
post = get_object_or_404(Post, pk=pk)
post.delete()
return redirect("post_list")
Шаблон, который выдает ошибку
{% extends 'blog/base.html' %}
{% block content %}
<article class="post">
<time style="float: right; margin-right: 20px; opacity: 0.7;">published : {{post.published_date}}</time>
<h2><a href="{% url 'post_detail' pk=post.pk %}" style="text-decoration: none; float: left;">{{post.title}}</a></h2>
{% if user.is_authenticated %}
<aside style="float: left;">
<a class="btn btn secondary" href="{% url 'post_edit' pk=post.pk %}">
{% include './icons/pencil-fill.svg' %}
</a>
</aside>
<aside style="float: left;">
<a class="btn btn secondary" href="{% url 'post_delete' pk=post.pk %}">
{% include './icons/lock-fill.svg' %}
</a>
</aside>
{% endif %}
<p style="clear: both; word-wrap: break-word;" >{{post.text}}</p>
</article>
{% endblock content %}
Базовый шаблон, который расширяется
{% load static %}
<!DOCTYPE html>
<html>
<head>
<title>
Ayush's Blog
</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<link href="//fonts.googleapis.com/css?family=Lobster&subset=latin,latin-ext" rel="stylesheet" type="text/css">
<link rel="stylesheet" href={% static 'css/blog.css' %}>
</head>
<body style="overflow-y: scroll;">
<header class="page-header">
<div class="container">
{% if user.is_authenticated %}
<a href="{% url 'post_new' %}" class="top-menu">
{% include './icons/file-earmark-plus.svg' %}
</a>
{% endif %}
<h1><a href="/" style="text-decoration: none;">Ayush's Blog</a></h1>
</div>
</header>
{% block content %}{% endblock content %}
</body>
</html>
Спасибо за любую помощь
Редактирование:
Вот полный отслеживание