我有一个应用程序,我试图将一个slug字段从模板( frames.html )传递给views.py。我的问题是,当点击frames.html上的链接时,我看到网址发生了变化,但它似乎无法到达视图。(我的views.py中的打印语句没有打印出来,所以&我怎么知道。)我的 frames.html 如下
<div id="FramePage">
{% for frame in Frames %}
<p><a href="/frames/{{ frame.slug }}/">{{frame}}</a>
{% endfor %}
</div>
这是我 urls.py
中的条目urlpatterns = patterns('',
# Examples:
#url(r'^$', 'vTryON_Django.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'vTryON.views.home_page'),
url(r'^frames/', 'vTryON.views.VTryONAll'),
url(r'^frames/(?P<frameslug>.*)/$', 'vTryON.views.selectedFrame'),
url(r'^tryonpage/', 'vTryON.views.tryonpage'),
url(r'^uploadPC/', 'vTryON.views.uploadPC'),
url(r'^uploadWebcam/', 'vTryON.views.uploadWebcam'),
)
这是我在 views.py
中的查看功能def selectedFrame(request, frameslug):
#print('selectedFrame')
frame= VTryON.objects.get(slug=frameslug)
#print(frame)
context={'frame':frame}
#print('context')
return render_to_response('selectedframe.html', context, context_instance=RequestContext(request))
正如我所提到的,点击 frames.html 上的链接后,我可以看到我的网址从http://127.0.0.1:8000/frames/
更改为http://127.0.0.1:8000/frames/FR123/
。
我在urls.py中错误配置了吗?我是python / django的初学者。请帮帮我。谢谢。
答案 0 :(得分:0)
问题出在您的网址中。您的frames
网址最终不会终止正则表达式。所以它也匹配任何只是开始的&#34;帧&#34;,其中包括&#34; frames / FR123&#34;。
您应确保所有网址明确以$
结尾,以防止此情况发生。
url(r'^frames/$', 'vTryON.views.VTryONAll'),