我遇到与How to pass variables with spaces through URL in :Django相同的问题。我已经尝试了所提到的解决方案,但所有内容都以#34返回;您要查找的资源已被删除,名称已更改或暂时不可用。"
我正在尝试传递文件名示例:new 3
在urls.py中:
var topModelsEnumerable = Model.Categories.SelectMany(c => c.TopModels != null);
在views.py中:
url(r'^file_up/delete_file/(?P<oname>[0-9A-Za-z\ ]+)/$', 'app.views.delete_file' , name='delete_file'),
url:demo.net/file_up/delete_file/new%25203 /
感谢您的帮助
答案 0 :(得分:0)
想一想;你不得不使用空格吗?如果没有,我认为你可能会发现你的模式(和变量)更容易使用。破折号或下划线,甚至正斜杠看起来更清晰,更可预测。
我也发现了这个:https://stackoverflow.com/a/497972/352452引用:
空格字符是不安全的,因为当URL被转录或排版或受到文字处理程序的处理时,重要的空格可能会消失并且可能会引入无关紧要的空格。
您也可以使用文字 mFragmentActivity.getSupportFragmentManager();
捕捉空间。不确定。只想在脑海中留下一些想法。
答案 1 :(得分:0)
demo.net/file_up/delete_file/new%25203/
此网址经过双重编码。该空格首先编码为%20
,然后%
字符编码为%25
。 Django只对URL进行一次解码,因此解码后的URL为/file_up/delete_file/new%203/
。您的模式与文字%20
不匹配。
如果你想坚持使用空格而不是不同的分隔符,你应该找到该URL的来源,并确保它只编码一次:demo.net/file_up/delete_file/new%203/
。