在Django 1.8中引用其他视图的URL,不带参数
我正在开发一个简单的Django 1.8应用程序,其模板引用指向另一个视图的url。这些视图都是基于类的泛型视图 尝试加载页面时,出现以下错误:在Django 1.8中引用其他视图的URL,不带参数,django,django-views,Django,Django Views,我正在开发一个简单的Django 1.8应用程序,其模板引用指向另一个视图的url。这些视图都是基于类的泛型视图 尝试加载页面时,出现以下错误: NoReverseMatch at / Reverse for 'add' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'$add/$'] <form action="{% url 'movies:add' %}" method=
NoReverseMatch at /
Reverse for 'add' with arguments '()' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'$add/$']
<form action="{% url 'movies:add' %}" method="post">{% csrf_token %}
这对我来说很奇怪,因为模板中正在解析正确的URL,并且CreateView
不需要任何变量(我认为)
这意味着用于包含应用程序URL的正则表达式以
$
结尾。它适用于空模式,如电影列表
,但不适用于非空模式。删除该正则表达式中的$
,它就会工作 我已经这样做了,但是新路径也会出现错误。编辑:啊,它是项目URL配置中$
中的一个。删除包含这些模式的$
,而不是添加/
模式本身。$
表示字符串的结尾,因此最后尝试的模式应类似于[u'add/$”]
。
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")
]
<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>
{% for 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>
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"
1 pattern(s) tried: [u'$add/$']