2012-11-01 81 views
0

好的我在這個問題上從一個善良的人那裏得到幫助,並希望看到任何人都可以在這裏幫助我的代碼。 urls.pydjango沒有反向匹配

urlpatterns = patterns('', 

url(r'^venues/(?P<venue_id>\d+)/$','venues.views.venue', name='venue'), 

views.py

def venue(request,venue_id): 
venue= get_object_or_404(VenueProfile, 
          venue__pk=venue_id).select_related('venue') 

return render_to_response('venues/venueprofile',{'venue',venue}, 
    context_instance=RequestContext(request)) 

模板

{% load url from future %} 
{% for v in venues %} 
    {% with ven=v.venue profile=v %} 
<a href="{% url 'venue' venue_id=venue.pk %}">{{ven.name}}</a> 

現在,當我嘗試使用此我得到扭轉在 '場地' 與參數 '()' 和關鍵字參數'{'venue_id':''}'找不到。任何人都可以在這裏幫助我,請記住,我忽略了一些代碼,例如視圖中定義的{{場景}}對象。

+0

哪裏有場地定義? –

回答

3

您的venue模板中的對象爲無,因此它沒有pk。在你的模板中,你也沒有通過任何venues對象。也許,簡化您的代碼有點幫助:

調整您的視圖方法的位:

from django.shortcuts import render 

def venue(request,venue_id): 
    the_venue = get_object_or_404(Venue,pk=venue_id) 
    return render(request,'venues/venueprofile',{'venue',the_venue}) 

您的模板:

{% load url from future %} 
<a href="{% url 'venue' venue_id=venue.pk %}">{{venue.name}}</a> 
1

venue.pk的值爲空字符串,因爲它與您的正則表達式不匹配,所以它沒有顯示反向匹配問題。

{% load url from future %} 
{% for v in venues %} 
    {% with ven=v.venue profile=v %} 
<a href="{% url 'venue' venue_id=venue.pk %}">{{ven.name}}</a> # Problem is that venue.pk is empty string 

反向關於 '場地' 與參數 '()' 和關鍵字參數 '{' venue_id ': ''}' venue_id的 校驗這裏值爲 ''。

0

更換

{% url 'venue' venue_id=venue.pk %} 

{% url 'venue' venue_id=ven.pk %}