Django - Ошибка: NoReverseMatch в /post/.../ . Обратное соответствие для 'post_remove' не найдено
Я работаю над своим проектом "my-first-blog" и сейчас я полностью застрял. Я создаю блог с информацией о себе для своего портфолио. Я следовал учебнику Django и проверил код сотни раз, но очевидно, что я что-то упускаю.
Я создаю Удалить сообщение. При нажатии на Title 1 блога получаю ошибку: "Reverse for 'post_remove' not found. 'post_remove' не является допустимой функцией представления или именем шаблона."
Может ли кто-нибудь увидеть, что я упускаю?
Здесь вы можете увидеть полный код https://github.com/valeriamilshtein/my-first-blog
post_remove.html
{% extends 'blog/base.html' %}
{% block content %}
<h1>Delete Post</h1>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button class="btn btn-secondary">Delete</button>
</form>
{% endblock %}
post_detail.html
{% extends 'blog/base.html' %}
{% block content %}
<div class="post">
{% if post.published_date %}
<div class="date">
{{ post.published_date }}
</div>
{% endif %}
<a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
<a class="btn btn-default" href="{% url 'post_remove' pk=post.pk %}"><span class="glyphicon glyphicon-remove"></span></a>
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaks }}</p>
</div>
{% endblock %}
urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail, name='post_detail'),
url(r'^post/new/$', views.post_new, name='post_new'),
url(r'^post/(?P<pk>[0-9]+)/edit/$', views.post_edit, name='post_edit'),
url(r'^post/(?P<pk>[0-9]+)/remove/$', views.post_remove, name='post_remove'),
]
views.py
from django.shortcuts import render
from django.utils import timezone
from .models import Post
from django.shortcuts import render, get_object_or_404
from .forms import PostForm
from django.shortcuts import redirect
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'blog/post_list.html', {'posts': posts})
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'blog/post_detail.html', {'post': post})
def post_new(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:
form = PostForm()
return render(request, 'blog/post_edit.html', {'form': form})
def post_edit(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:
form = PostForm(instance=post)
return render(request, 'blog/post_edit.html', {'form': form})
def post_remove(request, pk):
post = get_object_or_404(Post, pk=pk)
if request.method == "POST":
post.delete()
return redirect('post_list')