Нет обратного хода после попытки установить правильные параметры

Я получаю ошибку 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>[^/]+)$']

не могу найти проблему, так как это работало для меня в предыдущих проектах. Пожалуйста, помогите

Вернуться на верх