Как перенаправить на slug url в Django, если базовая строка содержит пробелы
Итак, у меня есть объект Poller
, который содержит поле poller_headline
, которое я хотел бы использовать как часть url перенаправления для этого объекта.
Поскольку poller_headline
обычно содержит много пробелов, я хочу заменить их дефисами, чтобы сделать url более читаемым для человека.
Я пытался определить свойство в Модели и реализовать его в url, но это ничего не дает.
# urls.py
# Redirect url to single Poller
path('poller/<int:pk>/<slug>[a-z0-9-_]+?)', render_single_poller, name='single_poller'),
# models.py
class Poller(models.Model):
[..]
poller_headline = models.CharField(max_length=100)
@property
def slug(self):
return self.poller_headline.replace(" ", "-")[:50]
# Template
<a class="hidden_poller_id" href="/poller/{{ poller.pk }}/{{ poller.poller_headline }}">
возвращает
Страница не найдена (404) Метод запроса: GET URL запроса: http://127.0.0.1:8000/poller/10/Headline%20default
for poller_headline
== 'Заголовок по умолчанию'