Django - 具有特殊字符的反转
Django - Reverse with special character
当我想反向使用带有特殊字符的参数时,出现此错误:
使用参数“()”和关键字参数“{'namep': u'\xe9 \xe9 \xe9 sds ( \xe9zacd '}' not found. 1 pattern( s) 试过:['(?P\w+)$']
我的看法:
def createPro(request):
...
if form.is_valid() :
name = form.cleaned_data["name"]
return redirect(reverse(my_pro, kwargs={'namep': name}))
def my_pro(request,namep):
pro = Pro.objects.get(name=namep)
...
我的模板:
...
<form method="POST" action="{% url 'createPro' %}" class="form-signin">
{% csrf_token %}
<div class="row">
<div class="col-md-offset-3 col-md-3">
{{ form.name|bootstrap }}
</div>
...
我的URL:
url(r'^create-pro$', 'createPro', name='createPro'),
url(r'^(?P<namep>\w+)$','my_pro', name="mypro"),
当方法 "createPro" 中的变量 "name" 包含特殊字符时出现此错误。对于这个例子,name = "é é é sds ( ézacd "
你似乎想在你的代码中包含 unicode 字符 url。试试这个:how to have unicode characters in django url?
您的测试用例是 name = "é é é sds ( ézacd "
,而视图的正则表达式是 url(r'^(?P<namep>\w+)$'
。 ' '
和 (
与 \w
不匹配,因此正则表达式不匹配。尝试使用 "ééésdsézacd"
,或更新您的正则表达式以允许名称中包含您想允许的字符。
代码审查显示 Django URL 解析器使用 re.UNICODE
标志,所以我希望 'é'
等匹配 \w
.
当我想反向使用带有特殊字符的参数时,出现此错误:
使用参数“()”和关键字参数“{'namep': u'\xe9 \xe9 \xe9 sds ( \xe9zacd '}' not found. 1 pattern( s) 试过:['(?P\w+)$']
我的看法:
def createPro(request):
...
if form.is_valid() :
name = form.cleaned_data["name"]
return redirect(reverse(my_pro, kwargs={'namep': name}))
def my_pro(request,namep):
pro = Pro.objects.get(name=namep)
...
我的模板:
...
<form method="POST" action="{% url 'createPro' %}" class="form-signin">
{% csrf_token %}
<div class="row">
<div class="col-md-offset-3 col-md-3">
{{ form.name|bootstrap }}
</div>
...
我的URL:
url(r'^create-pro$', 'createPro', name='createPro'),
url(r'^(?P<namep>\w+)$','my_pro', name="mypro"),
当方法 "createPro" 中的变量 "name" 包含特殊字符时出现此错误。对于这个例子,name = "é é é sds ( ézacd "
你似乎想在你的代码中包含 unicode 字符 url。试试这个:how to have unicode characters in django url?
您的测试用例是 name = "é é é sds ( ézacd "
,而视图的正则表达式是 url(r'^(?P<namep>\w+)$'
。 ' '
和 (
与 \w
不匹配,因此正则表达式不匹配。尝试使用 "ééésdsézacd"
,或更新您的正则表达式以允许名称中包含您想允许的字符。
代码审查显示 Django URL 解析器使用 re.UNICODE
标志,所以我希望 'é'
等匹配 \w
.