我一直收到此NoReverseMatch
错误。
我的错误是<form action>
标记。但是,如果我将格式更改为<a href>
标记中的格式,那么一切都还可以。请指导我,因为我是Django的新手。
<html>
<head><title>Feedbacks</title></head>
<body>
{% if store_list %}
<ul>
{% for store in store_list %}
<li><a href="/feedbacks/{{ store.store_name }}/add/">{{ store.store_name }}</a></li>
<form action="{% url 'view' store.store_name %}" method="post">
<input type="submit" value="Add" text="Add" />
</form>
{% endfor %}
</ul>
{% else %}
<p>List is empty.</p>
{% endif %}
</body>
</html>
我的urls.py
from django.conf.urls import patterns, url
from feedback import views
urlpatterns = patterns('',
#/feedbacks
url(r'^$', views.feedbacks, name="feedbacks"),
# /feedbacks/Kenny Rogers/add/
url(r'^(?P<store_name>.+)/add/$', views.add, name="add"),
url(r'^(?P<store_name>.+)/view/$', views.view, name="view"),
)
我的views.py
from django.http import HttpResponse
from feedback.models import Store
from django.template import Context, loader
from django.shortcuts import render
def feedbacks(request):
store_list = Store.objects.all()
context = {"store_list" : store_list}
return render(request, "feedback/feedbacks.html", context)
def add(request, store_name):
return HttpResponse("I'm at the add page of %s. " % store_name)
def view(request, store_name):
return HttpResponse("I'm at the view page of %s. " % store_name)
答案 0 :(得分:1)
{% load url %}
或{% load url from future %}
。 In Django documentation你可以找到它。
答案 1 :(得分:0)
django 1.5允许引号。如果您使用的是以下版本,请尝试删除它。
<form action="{% url add store.store_name %}" method="post">
此外,您错过了csrf令牌,尽管错误与此无关。