是否可以在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
)。我可以只使用通用视图吗?
答案 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”。