【发布时间】:2014-07-04 22:34:13
【问题描述】:
我无法理解基于类的视图,所以我试图通过一个例子来弄清楚。这是我目前所拥有的:
#urls.py
url(r'^(?P<langcode>[a-zA-Z-]+/about/$', about, name='about')
#views.py
def about(request, langcode):
languages = Language.objects.values_list('code', flat=True)
language = get_object_or_404(Language, pk=langcode)
return render(request, 'about.html', {
'languages': languages,
'language': language
})
我还有一些其他功能视图,其中包含about 的前两行:
languages = Language.objects.values_list('code', flat=True)
language = get_object_or_404(Language, pk=langcode)
所以,我现在想做的是:
创建一个
class BaseView(或者你想怎么称呼它)它扩展 来自django.generic.views的东西,它将根据langcode输入参数确定上下文的language和languages参数创建
class AboutView(BaseView)(因此扩展BaseView),它将以某种方式定义要用于渲染的模板名称about.html。我将进一步拥有另一个基于类的视图,也扩展
BaseView,它类似于AboutView,但它设置了一个名为region的上下文参数,也取决于langcode输入参数
有人能告诉我具体如何编码这些东西吗?谢谢
【问题讨论】:
标签: django django-views django-class-based-views