簡體   English   中英

在模板中將子彈從模板傳遞到視圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM