Как перенаправить на 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 == 'Заголовок по умолчанию'

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