I keep getting this NoReverseMatch error.
My error is at the <form action> tag. But if I change the format to something like the one in <a href> tag then everything is okay. Please guide me as I am new to 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>
My 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"),
)
My 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)
Quotation marks have been allowed from django 1.5. If you are using version below it try by removing it.
Also, you are missing the csrf token though the error is not related to that.