具有多个参数的Django通用视图

时间:2010-02-02 00:07:07

标签: python django django-generic-views

是否可以在URL映射中使用带有附加参数的通用视图 - 即我得到以下模型:

class Route(models.Model):
    area = models.ForeignKey(Area)
    slug = models.SlugField(null=True,blank=True)

    @models.permalink
    def get_absolute_url(self):
        return ('route_details', (), {'area': self.area.slug, 
                                      'slug': self.slug})

此网址映射:

url(r'^(?P<area>[-\w]+)/(?P<slug>[-\w]+)/$','routes.views.route_details',
    name='route_details')

这个琐碎的观点:

def route_details(self, area, slug):
    route = get_object_or_404(Route, slug=slug)
    return render_to_response("routes/route_details.html", {'route': route})

正如你所看到的,我实际上只是通过路线的slug识别路线,而区域slu is只是为了塑造网址(例如routes/central-park/rat-rock)。我可以只使用通用视图吗?

1 个答案:

答案 0 :(得分:0)

当然,这样的事情:

url(r'^(?P<area>[-\w]+)/(?P<slug>[-\w]+)/$',
    'django.views.generic.list_detail.object_detail',
    {'queryset': Route.objects.all()}
    name='route_details')

应该工作。

请务必将template_object_name设置为“route”或在模板中使用“object”。

相关问题