Нет обратного хода после попытки установить правильные параметры
Я получаю ошибку NoReverseMatch
, но все кажется правильным. Я попробовал ссылку, которую он сгенерировал, и она работает, но использование get_absolute_url
всегда дает ошибку NoReverseMatch
. Вот мой models.py:
from django.db import models
from django.db.models.expressions import OrderBy
from django.db.models.fields import CharField, EmailField
from phonenumber_field.modelfields import PhoneNumberField
from django.utils import timezone
from django.contrib.auth.models import User
from django.urls import reverse
# Create your models here.
############announcements#########
class Announcement(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published')
)
DEPARTMENTS = (
('appost', 'Appointments and Posting'),
('bdgt', 'Budget, Planning, Research and Statistics'),
('mgt', 'Management Services'),
('psn', 'Personnel'),
('tmd', 'Training and Manpower Development'),
('gen', 'General Public'),
)
graphics = models.ImageField(
upload_to='media/Announcements'
)
title = models.CharField(max_length=250)
slug = models.SlugField(
max_length=250,
unique_for_date='publish'
)
announcer = models.CharField(max_length=30)
due_date = models.DateTimeField(default=timezone.now)
department = models.CharField(
max_length=44,
choices=DEPARTMENTS,
default='appost'
)
audience = models.CharField(max_length=50)
body = models.TextField()
publish = models.DateTimeField(default=timezone.now)
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
status = models.CharField(
max_length=10,
choices=STATUS_CHOICES,
default='draft'
)
def __str__(self):
return f'{self.title} - {self.slug}'
def get_absolute_url(self):
return reverse('web:ann_details',args=[self.title])
и вот мой urls.py:
from django.contrib import admin
from django.urls import path
from web import views
app_name = 'web'
urlpatterns = [
path('search',views.search,name="search"),
path('profile',views.profile,name="profile"),
path('principals',views.principals,name='principals'),
path('announcement/<str:title>',views.announcement_details,name='ann_details')
]
вот ошибка:
NoReverseMatch at /principals
Reverse for 'ann_details' with arguments '('/announcement/blah',)' not found. 1 pattern(s) tried: ['announcement/(?P<title>[^/]+)$']
не могу найти проблему, так как это работало для меня в предыдущих проектах. Пожалуйста, помогите