django url 传入参数带有空格怎么处理?

请问,我在django里,传递到url的参数带有空格,因为url写的是根据产品的title来判断页面。
譬如说一个产品title叫做 small green bike 传递参数进去 www.xx.com/samll green bike.
虽然页面打得开页面,但是url不合法。想要加上横岗- 譬如说small-green-bike,这样url合法了。可是前端页面渲染出来又有横岗。
请问要怎么在url里带有横岗,然后再前端页面渲染出来又没有横岗呢?
想说在model层再建立一个字段,可是感觉这样好像很不科学,又多此一举,应该有更好的方法吧?
自学django中,好多不明白。
谢谢。

阅读 7.1k
3 个回答

对URL中特殊字符,如空格,转义?

新手上路,请多包涵

你可以自己创建一个template filter。 在你的app目录下面新建一个文件夹叫做templatetags 在整个文件家里面新建两个文件 一个是__init__.py 另一个tags.py

然后在tags里面 创建你的template filter
from django import template

register = template.Library()

@register.filter("trimdash")
def trimdash(text):

return "" if not text else text.replace("-", " ")

然后 你在你的页面里面 先导入tags.py文件
{% load tags %}

然后你就可以这样用

{{ title|trimdash }}

这样就可以了

你可以在你的view里面做修改, 把string转换成str array然后传到template中.

def controller(request, title):
    title_arr = title.split('-')
    context = {
        "title": title_arr
    }
    render(request, 'path/to/template.html', context)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题