我在html文件中有一个项目列表,如下所示:
{% extends 'base.html' %}
{% block Content %}
<div id="movie_list">
{% for movie in movies %}
<p class="movie-title"><a href="/movie/{{ movie.slug }}/">{{ movie.name }}</a> </p>
{% endfor %}
</div> {% endblock %}
显示电影名称列表,此列表中的每个项目都是链接!我尝试根据href
标记中的<a>
属性向服务器发送请求以查看特定的电影。
模型处理此请求如下:
def SpecificMovie(request, movie_slug):
movie = Movie.objects.get(slug=movie_slug)
context = {'movies': movie}
return render_to_response('single_movie.html', context, context_instance=RequestContext(request))
根据传递给它的movie_slug
响应请求!
single_movie.html
文件如下:
{% extends 'base.html' %}
{% block Content %}
<div id="single_moive">
<p class="movie-title">Name: {{ movies.name }}</p>
<p class="movie-title">Des: {{ movies.description }}</p>
<p class="movie-title">Country: {{ movies.country }}</p>
</div>
{% endblock %}
和我的urlpatterns
var如下:
urlpatterns = patterns('',
(r'^$', TemplateView.as_view(template_name='index.html')),
(r'^admin/', include(admin.site.urls)),
(r'^movie/$', 'movie_page.views.MoviesAll'),
(r'^movie/(?P<movie_slug>.)/$', 'movie_page.views.SpecificMovie'),
)
但是当我点击每个项目时会收到错误,说明网址模式中存在未命中匹配。页面快照如下:
你可以看到一切似乎都好!但我不知道问题是什么!我阅读了以下链接(link1,link2,link3),但感谢您提出任何意见。
答案 0 :(得分:3)
正则表达式(?P<movie_slug>.)
匹配单个字符。您可能需要(?P<movie_slug>.+)
。