我是Django的新手,我正在开发一个有个人资料页面的项目。
嗯,问题是主键有空格但我不希望它们显示在网址中,也不像“%20%”,我想加入这些单词。例如:
website.com/Example Studios - > website.com/examplestudios
我试过这个:
url ( (r'^(?P<studio_name>[\w ]+)/$').replace(" ", ""), views.StudioView, name = 'dev_profile')
但是没有用(看起来它在读取url之前将原始部分转换为字符串)并且're'发生了同样的事情。我一直在寻找解决方案,但我找不到它们(而且slugify并不能说服我)。
这是什么解决方案或者你推荐什么?
答案 0 :(得分:0)
在网址中你定义了Django会捕获的模板,例如r'^ test / $'这意味着当有人试图获得yourdomain.com/test时,Django会捕获它并调用可能会呈现模板的视图。你需要解决你的网址生成问题,例如在模板中。因此,在网址中:
url ( (r'^(?P<studio_name>[\w ]+)/$'), views.StudioView, name = 'dev_profile')
。
您需要将主键转换为单词而不在模板中使用空格。一种方法是为每条记录使用slug。
另外将slug字段添加到Studio模型,该模型是自动生成的和不可编辑的字段(您可以从名称生成它,例如Example Studios-&gt; examplestudios)。