не работает.
из адреса я убираю /news/ так как первая строчка уже /news/ забирает на себя. верно?
если я верно понимаю, что slug:cat / slug:news должно как то ссылаться на адрес категории, но не работает. в модель что то нужно дописать?
urlpatterns = [
path('', NewsHome.as_view(), name='news_index'),
path('<slug:category_url>/', CategoryItem.as_view(), name='news_category'),
path('<slug:category_url>/<slug:url>/', NewsItem.as_view(), name='news_item'),
]
class News(models.Model):
title = models.CharField(max_length=250, db_index=True, verbose_name='Название')
url = models.SlugField(max_length=250, unique=True, db_index=True, verbose_name='Адрес')
category = models.ForeignKey('Category', on_delete=models.PROTECT, null=True, verbose_name='Категория')
date = models.DateTimeField(default=datetime.now, blank=True, verbose_name='Дата')
date_add = models.DateTimeField(auto_now_add=True, verbose_name='Дата добавления')
date_edit = models.DateTimeField(auto_now=True, verbose_name='Дата изменения')
text = models.TextField(blank=True, verbose_name='Содержание')
photo = models.ImageField(upload_to='photo/%Y/%m/', blank=True, verbose_name='Изображение')
active = models.BooleanField(default=True, verbose_name='Статус')
views = models.PositiveIntegerField(default=0, verbose_name='Просмотры')
def get_absolute_url(self):
return reverse('news_item', kwargs={'url': self.url})
def __str__(self):
return self.title
class Meta:
verbose_name = 'Новость';
verbose_name_plural = 'Новости';
ordering = ['-date_add', '-id']
class Category(models.Model):
title = models.CharField(max_length=250, db_index=True, verbose_name='Название')
category_url = models.SlugField(max_length=250, unique=True, db_index=True, verbose_name='Адрес')
text = models.TextField(blank=True, verbose_name='Содержание')
def get_absolute_url(self):
print(self.category_url)
return reverse('news_category', kwargs={'category_url': self.category_url})
def __str__(self):
return self.title
class Meta:
verbose_name = 'Категория';
verbose_name_plural = 'Категории';
ordering = ['title']