我的django网址有什么问题?

时间:2015-06-27 00:53:44

标签: python html django django-admin django-views

来自urls.py的

行:

url(r'^(?P<customer_profile_id>\d+)/case/(?P<account_type>\w+)/$', view='case', name='case'),

来自html:

<form method="POST" action="{% url 'case/cash/' %}" id="create_collection_case" target="_blank">

错误:

NoReverseMatch at /admin/customers/1/
Reverse for 'case/cash/' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

我只有一个html表单 - &gt;发布到django网址 - &gt;加载django视图。加载页面时出现上述错误。如果您需要其他任何问题进行排查,请告诉我们!

2 个答案:

答案 0 :(得分:1)

指定网址的名称(case),而不是网址的名称:

<form method="POST" action="{% url 'case' %}" id="create_collection_case" target="_blank">

答案 1 :(得分:0)

如果您希望django确定路线,您的正则表达式需要与表单操作完美匹配。请注意\d+表示整数,我更喜欢将文字/字符串与([-\w+]+)匹配。

对于最佳实践,我建议您将URL重新更改为(最好在结尾处最好使用整数查询值)

url(r'^case/(?P<account_type>[-\w+]+)/(?P<customer_profile_id>\d+)/$', view='case', name='case'),

并且您的表单操作应该采用此方法,其中profile_id是一个整数

{% url 'case/cash/profile_id/' %}
#e.g. http://127.0.0.1:8000/case/cash/1/