Html 在具有空格的对象的django模板中创建超链接

Html 在具有空格的对象的django模板中创建超链接,html,django,templates,hyperlink,Html,Django,Templates,Hyperlink,我正在尝试创建一个动态超链接,该超链接取决于从函数传递的值: {% for item in field_list %} <a href={% url index_view %}{{ item }}/> {{ item }} </a> <br> {% endfor %} 我怎样才能把它送到医院 http://126.0.0.1:8000/Hockey Player/ 相反?有一个内置过滤器 虽然你应该使用其中一种 使用过滤器 但你为什么要取这个名字

我正在尝试创建一个动态超链接,该超链接取决于从函数传递的值:

{% for item in field_list %}
    <a href={% url index_view %}{{ item }}/> {{ item }} </a> <br>
{% endfor %}
我怎样才能把它送到医院

http://126.0.0.1:8000/Hockey Player/

相反?

有一个内置过滤器

虽然你应该使用其中一种

使用过滤器


但你为什么要取这个名字?您应该将适当的视图和PK或slug传递给
url
,这将自己创建一个合适的url。

因为空格在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()
    ...
如果希望在admin中预先填充slug字段,请在admin.py中使用类似的内容:

class PlayerAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("title",)}
....

admin.site.register(Player,PlayerAdmin)
现在,当您在管理员中输入新球员时,如果您键入“Hockey Player”作为标题,Slug字段将自动变为“Hockey_Player”

在模板中,您将使用:

{% for item in field_list %}
    <a href={% url index_view %}{{ item.slug }}/> {{ item }} </a> <br>
{% endfor %}
{%用于字段\列表%中的项目]

{%endfor%}
Django新手在这里。你能说得更具体些吗?我有点明白你的意思,但我不太明白。就像医生说的那样。编写一个视图,将其放入urlconf,然后使用
url
。谢谢,不过我不确定我是否理解slugfield将如何使用或提供帮助。
class PlayerAdmin(admin.ModelAdmin):
    prepopulated_fields = {"slug": ("title",)}
....

admin.site.register(Player,PlayerAdmin)
{% for item in field_list %}
    <a href={% url index_view %}{{ item.slug }}/> {{ item }} </a> <br>
{% endfor %}