我正在将旧应用程序迁移到django 1.6。
现在,有些观点以这种方式编程:
from django.views.generic.list_detail import object_list
@render_to("items/index.html")
def index(request):
profile = request.user.get_profile()
args = clean_url_encode(request.GET.copy().urlencode())
context = {
'is_dashboard': True,
'body_id': 'dashboard',
'object_list': None,
'args':args,
'show_in_process':False
}
return context
我知道我现在需要使用新的ListView,但是示例和文档似乎并没有告诉我这个特例:object_list是在上下文中传递的。
如何调整此代码以使用基于类的新通用视图?我是否也可以使用ListView.asView()
代替'object_list':None ?
答案 0 :(得分:0)
如果您没有对象列表,为什么使用ListView
?我认为TemplateView
应该完成这项工作。您只需覆盖get_context_data
并提供自定义上下文
class IndexView(TemplateView):
template_name = 'items/index.html'
def get_context_data(self, **kwargs):
context = super(IndexView, self).get_context_data(**kwargs)
profile = self.request.user.get_profile()
args = clean_url_encode(self.request.GET.copy().urlencode())
context.update({
'is_dashboard': True,
'body_id': 'dashboard',
'object_list': None,
'args':args,
'show_in_process':False
})
return context