Referencing URLs for other views in Django 1.8 with no arguments -
i working on simple django 1.8 application template referencesa url points view. views class-based generic views.
when attempting load page, following error:
noreversematch @ / reverse 'add' arguments '()' , keyword arguments '{}' not found. 1 pattern(s) tried: [u'$add/$'] <form action="{% url 'movies:add' %}" method="post">{% csrf_token %}
my app's url.py:
urlpatterns = [ url(r'^$', views.movielist.as_view(), name="index"), url(r'^add/$', views.moviecreate.as_view(), name="add"), url(r'^(?p<pk>\d+)/delete/$', views.moviedelete.as_view(), name="delete"), url(r'^(?p<pk>\d+)/update/$', views.movieupdate.as_view(), name="update") ]
the template being used:
<table> <tr> <td><a href="?sort=title">title</a></td> <td><a href="?sort=year">year</a></td> <td><a href="?sort=director">director</a></td> </tr> {% movie in movie_list %} <tr> <td>{{movie.title}}</td> <td>{{movie.year}}</td> <td>{{movie.director}}</td> </tr> {% endfor %} </table> <form action="{% url 'movies:add' %}" method="post">{% csrf_token %} <input type="submit" value="add movie" /> </form>
the 2 views in question:
class movielist(listview): model = movie queryset = movie.objects.order_by("title", "-year", "director") context_object_name = "movie_list" template_name = "movies/index.html" class moviecreate(createview): model = movie fields = ["title", "year", "director"] template_name = "movies/add_movie.html"
this strange me since correct url being resolved in template , there no variables expected createview
(i think).
1 pattern(s) tried: [u'$add/$']
this means regex used include app's urls ends $
. works empty pattern such movielist
, not non-empty patterns. remove $
in regex , it'll work.
Comments
Post a Comment