Я использую Django 3.0 для создания базового c веб-сайта, и я, очевидно, все еще новичок. Моя проблема в том, что я не могу динамически вызывать DetailView, используя формат {% url 'my_page'%}.
Я создал раздел «О нас», для которого слаг - это «нас», и мой ulrs.py имеет name = "<- slug: slug>" (я подумал, что это неправильно), и получаю NoReverseMatch at /, Реверс для 'about-us' не найден. «about-us» не является допустимой функцией представления или именем шаблона.
У меня есть модель сечения, настроенная следующим образом в models.py :
from django.utils.text import slugify
class Section(models.Model):
section_title = models.CharField(max_length=200, unique=True)
section_bg = models.ImageField(upload_to='section-bg')
slug = models.SlugField(unique=True)
def save(self, *args, **kwargs):
self.slug = slugify(self.section_title)
super(Section, self).save(*args, **kwargs)
def __str__(self):
return self.section_title
Соответствующий views.py view:
from django.views.generic.detail import DetailView
from . import models
class SectionView(DetailView):
template_name = "home/section.html"
model = models.Section
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
return context
И, наконец, в urls.py :
urlpatterns = [
...
path(r'home/<slug:slug>/', views.SectionView.as_view(), name='<slug:slug>'),
...
]
Спасибо за заранее за помощь!