我在django中使用动态网址。它适用于整数值,如果动态部分是URL的末尾,则适用于字符串。当在动态变量之后的URL一些其他组件,说:django动态网址的怪异行为
url(r'companies/(?P<comp_id>.+)/buy/?$',views.buy)
现在在views.buy功能,
print comp_id
给我id1/buy
。所以,它将整个剩余的URL作为comp_id变量。我该如何阻止它?
company.html:
<html>
<head>
<title>{{ company.name }}</title>
</head>
<body>
Name:{{ company.name }}<br>
Worth: {{ company.company_worth }}<br>
<form action="/companies/{{ company.comp_id }}/buy/" method = "post">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Buy">
</form>
</body>
这是不可能的;你必须有一个像'company/id1/buy/buy'这样的URL才能实现。 –
在任何情况下,您都可以匹配'[^ /] +'来匹配任何不是*斜杠而不是'。+'的字符。 –
@MartijnPieters:'(?P [^ /] +)'不起作用 –