【发布时间】:2023-03-14 02:36:01
【问题描述】:
我有一些包含波斯语文本的链接,例如:
http://sample.com/fields/طب%20نظامی
在视图函数中我想访问波斯语部分,所以:
url = request.path_info
key = re.findall('/fields/(.+)', url)[0]
但我收到以下错误:
IndexError at /fields/
list index out of range
实际上,问题在于索引为零,因为它在那里看不到任何东西!需要注意的是,它是 IIS Server 上的一个 Django 项目,我已经在其他服务器和本地服务器上成功测试过它。我认为它与IIS有关。此外,我曾尝试对 url 进行 slugify,但没有成功。我可以成功编码 url,但我认为这不是这个问题的实际答案。
基于 cmets:
我也检查了request.path 和同样的问题。它包含:
/fields/
我在本地服务器上实现了一个示例 django 项目,这是我的看法:
def test(request):
t = request.path
return HttpResponse(t)
结果:
http://127.0.0.1:8000/تست/
/تست/
没有任何问题。
【问题讨论】:
-
您确定它在
path_info中吗?你能分享你在这里使用的path/url吗? -
path_info 包含 /fields/。
-
它不存在,这是我的问题。也许我的问题不合适,用“它看不到它”这句话。
-
很可能您首先使用
fields/访问该页面,因此出现错误,然后才会访问fields/some-persian-text -
这怎么可能?因为它只是我制作的一个链接,而不是大多数。另外,请注意,我可以使用本地服务器以相同的方式访问。
标签: django url iis unicode arabic