使用带有空格的unicode字符串作为Django url变量

时间:2012-06-14 18:04:12

标签: python django

使用包含空格的unicode(希伯来语特定)字符串是否有问题。

其中一些还包括“%”等字符。

我遇到了一些问题,因为这是我的第一个Django项目,我想在进一步调试之前将其排除在外。

如果这种网址存在已知的Django问题,那还有办法吗?

我知道我可以重新格式化文本以解决其中的一些问题,但由于我正在准备一个使用原始开放政府数据集(非常合法)的网站,我希望尽可能坚持原始格式。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

请查看here,以便对无效(或有效)网址的内容进行相当全面的讨论。

答案 1 :(得分:1)

Django不应该对unicode URL或URL中的空格有任何问题(尽管你可能需要注意确保空格被删除(%20)。

但是,无论哪种方式,在URL中使用空格都是不好的形式。它不能保证工作,除非它被编码,然后再担心这一点。最好将任何字段最终成为网址的一部分SlugField(因此不允许使用空格)或在slugify中运行该值,然后再将其放入网址中:< / p>

在模板中:

http://domain.com/{{ some_string_with_spaces|slugify }}/

或者在python代码中:

from django.template.defaultfilters import slugify

u'http://domain.com/%s/' % slugify(some_string_with_spaces)