Я пытаюсь использовать slug в своем URL, я сделал это нормально на других сайтах, но по какой-то причине я не могу использовать slug в URL в этой области сайта, только первичный ключ получает желаемый результат, что мне здесь не хватает? Единственное отличие от других сайтов, которые я сделал, состоит в том, что слизень будет использоваться для фильтрации, что, как мне кажется, испортит это.
Модель:
class Desk(models.Model):
name = models.CharField(max_length=16, unique=True)
slug = models.SlugField(max_length=16, unique=True)
def __str__(self):
return self.slug
class Handover(models.Model):
desk = models.ForeignKey(
Desk,
related_name="handover",
on_delete=models.CASCADE
)
published = models.DateTimeField(auto_now_add=True)
user = models.CharField(max_length=45)
ongoing = models.CharField(max_length=1024, null=True, blank=True)
resolved = models.CharField(max_length=1024, null=True, blank=True)
planned_work = models.CharField(max_length=1024, null=True, blank=True)
heightened_awareness = models.CharField(max_length=1024, null=True, blank=True)
В представлении ниже по какой-то причине я не могу использовать слово «slug» в фильтре, он просто выдает ошибку. Текущая настройка работает, если я использую PK в URL в браузере, но не слаг, который я хочу использовать (я не уверен, почему это тоже работает, я ожидаю, что это не будет работать из-за использования ' слизень в URL).
Вот представление:
class IndexView(ListView):
template_name = 'pcc_homepage/index.html'
queryset = Handover.objects.order_by('-published')
def get_queryset(self):
return Handover.objects.filter(desk=self.kwargs['desk'])
Вот URL:
urlpatterns = [
path('home/<slug:slug>/', IndexView.as_view(), name='index'),
path('handover/', HandoverCreateView.as_view(), name='handover'),
]
Как я могу сделать эту работу с понятным для человека словом, а не целым числом, пожалуйста ,