я делаю сайт блога, но проблема заключается в следующем:
На моей домашней странице есть блоги, которые я добавил, но когда я нажимаю на них, они показывают ошибку 500, которая обозначается как: NoReverseMatch по адресу /post/1/.
Мое тело кода выглядит следующим образом и мое приложение называется Блог:
Models.py
from django.db import models
from django.urls import reverse
class Post(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(
'auth.User',
on_delete=models.CASCADE,
)
body = models.TextField()
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post_detail', args=[str(self.id)])
URL. py:
from django.urls import path
from . import views
urlpatterns = [
path('', views.BlogListView.as_view(), name='home'),
path('post/<int:pk>/', views.BlogDetailView.as_view(), name='post_detail'),
path('post/new/', views.BlogCreateView.as_view(), name='post_new'),
path('post/<int:pk>/edit/', views.BlogUpdateView.as_view(), name='post_edit'),
]
Views.py:
from django.views.generic import ListView, DetailView
from django.views.generic.edit import CreateView, UpdateView
from . models import Post
class BlogListView(ListView):
model = Post
template_name = 'home.html'
class BlogDetailView(DetailView):
model = Post
template_name = 'post_detail.html'
context_object_name = 'anything_you_want'
class BlogCreateView(CreateView):
model = Post
template_name = 'post_new.html'
fields = '__all__'
class BlogUpdateView(UpdateView):
model = Post
fields = ['title', 'body']
template_name = 'post_edit.html'
Я использую функцию «Обратный импорт», чтобы вернуться на ту же страницу после добавления блога, но также показывает ту же ошибку.