[英]Passing slug from Template to View in django
我有一個應用程序,試圖將模板( frames.html )的條形字段傳遞給views.py。 我的問題是,單擊frames.html上的鏈接后,URL發生了變化,但似乎無法到達視圖。(我的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))
正如我所說,我可以看到從我的URL變化http://127.0.0.1:8000/frames/
到http://127.0.0.1:8000/frames/FR123/
后我點擊frames.html的鏈接。 我在urls.py中配置錯誤嗎? 我是python / django的初學者。 請幫幫我。謝謝。
問題出在您的URL中。 您的frames
網址最后不會終止正則表達式。 因此,它也可以匹配任何以“ frames” 開頭的內容 ,其中包括“ frames / FR123”。
您應確保所有URL都顯式以$
結尾,以防止這種情況。
url(r'^frames/$', 'vTryON.views.VTryONAll'),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.