Поскольку пробелы в URL запрещены,
http://126.0.0.1:8000/Hockey Player/
недопустимо. Фильтр urlencode просто заменит пространство на% 20, что некрасиво / не элегантно, даже если он выполняет свою работу. Гораздо лучшим решением является использование в вашей модели поля «slug», которое представляет собой очищенную версию поля заголовка (я предполагаю, что оно называется полем заголовка). Вы хотите получить чистый URL-адрес, например:
http://126.0.0.1:8000/hockey_player/
Чтобы это произошло, используйте что-то подобное в своей модели:
class Player(models.Model):
title = models.CharField(max_length=60)
slug = models.SlugField()
...
Если вы хотите, чтобы поле slug было предварительно заполнено в админке, используйте что-то подобное в вашем admin.py:
class PlayerAdmin(admin.ModelAdmin):
prepopulated_fields = {"slug": ("title",)}
....
admin.site.register(Player,PlayerAdmin)
Теперь, когда вы вводите нового игрока в администратор, если вы вводите «Хоккеист» в качестве заголовка, поле «Слаг» автоматически становится «hockey_player».
В шаблоне вы должны использовать:
{% for item in field_list %}
<a href={% url index_view %}{{ item.slug }}/> {{ item }} </a> <br>
{% endfor %}