使用包含空格的 unicode(特别是希伯来语)字符串是否存在问题。
其中一些还包括诸如 "%" 之类的字符。
我遇到了一些问题,因为这是我的第一个 Django 项目,我想在进一步调试之前排除这个问题。
如果这种 url 存在已知的 Django 问题,是否有解决方法?
我知道我可以重新格式化文本来解决其中的一些问题,但由于我正在准备一个使用原始开放政府数据集(完全合法)的网站,我想尽可能地坚持原始格式。
谢谢您的帮助
在这里查看有关导致无效(或有效)URL 的相当全面的讨论。
Django 对于 unicode URL 或 URL 中的空格不应该有任何问题(尽管您可能需要注意确保空格是 urlecoded ( %20
)。
但是,无论哪种方式,在 URL 中使用空格都是不好的形式。除非它是 urlencoded,否则它不能保证工作,然后这只是另一件需要担心的事情。最好将最终将成为 URL 一部分的任何字段设置为 a SlugField
(因此不允许以空格开头)或slugify
在将其放入 URL 之前运行该值:
在模板中:
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)