django没有反向比赛

时间:2012-11-01 03:04:26

标签: python django web-applications

好的,我从一个善良的人那里得到了关于这个问题的帮助,并希望看到是否有人可以帮助我这里是我的代码。 urls.py

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':''}'找到反向'场地'。没有人找到任何人请帮助我,请保留我忘记了一些代码,比如视图中定义的{{venues}}对象。

3 个答案:

答案 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 :(得分: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'   '{'venue_id':''}'   在这里检查venue_id的值是''。

答案 2 :(得分:0)

替换

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

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