0

好的,我在这个问题上得到了一个好心人的帮助,想看看是否有人可以帮助这是我的代码。网址.py

urlpatterns = patterns('',

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

视图.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>

现在,当我尝试使用它时,我得到 Reverse for 'venue' with arguments '()' 和关键字参数 '{'venue_id': ''}' not found。有人可以在这里帮助我吗,请记住我离开了输出一些代码,例如在视图中定义的 {{venues}} 对象。

4

3 回答 3

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>
于 2012-11-01T04:23:40.863 回答
1

场地.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' 在这里检查venue_id 的值是''。

于 2012-11-01T03:42:41.343 回答
0

代替

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

{% url 'venue' venue_id=ven.pk %}
于 2012-11-01T10:25:23.170 回答