2010-02-02 33 views
2

通用視圖是否可以使用在URL映射其他參數的一般觀點 - 即我得到了以下型號:Django的多參數

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}) 

正如你所看到的,我其實只是由糅標識的路線te的slu and和區域slu is只是爲了塑造網址(例如routes/central-park/rat-rock)。我可以使用通用視圖來做同樣的事嗎?

回答

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設置爲「路由」或使用模板中的「對象」。

+1

試過 - 「object_detail()得到了一個意想不到的關鍵字參數'area'」 – cvk 2010-02-06 11:49:53