首页 > 解决方案 > get_context_data 方法 Django

问题描述

# views.py
from django.views.generic import ListView
from books.models import Publisher

class PublisherList(ListView):
    model = Publisher
    context_object_name = 'my_favorite_publishers'

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['number'] = random.randrange(1, 100)
    return context

用 super() 调用 get_context_data 会返回什么?

什么类型的信息?

从 get_context_data 返回的上下文是否给定了 contexT_object_name 'my_favorite_publishers'?

标签: django

解决方案


.get_context_data(..)方法 [Django-doc]返回一个字典,其中包含将传递给模板进行渲染的上下文。

默认情况下,ListView[Django-doc]将创建一个包含以下键和值的字典:

  • 'view': 映射到这个视图的实例;
  • 'paginator':分页器对象,如果你分页,None否则;
  • 'page_obj': 如果分页,则为当前页面的页面对象,None否则;
  • 'is_paginated'True如果你分页,False否则;
  • 'object_list'ListView: 由;生成的(可选)分页查询集 和
  • context_object_name:如果你指定了 a context_object_name(或者你已经覆盖get_context_object_name并且它没有返回None,它也会将它与(可选的)分页查询集相关联。

推荐阅读