[英]get_context_data method 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'?
.get_context_data(..)
方法 [Django-doc]返回一個字典,其中包含將傳遞給模板進行渲染的上下文。
默認情況下, ListView
[Django-doc]將使用以下鍵和值創建字典:
'view'
: 映射到這個視圖的實例;'paginator'
: 分頁器對象,如果你分頁,否則None
;'page_obj'
: 分頁時當前頁面的頁面對象,否則為None
;'is_paginated'
:如果你分頁為True
,否則為False
;'object_list'
:由ListView
制作的(可選)分頁查詢集; 和context_object_name
:如果你指定了一個context_object_name
(或者你已經覆蓋了get_context_object_name
並且它沒有返回None
,它也會將它與(可選)分頁查詢集相關聯。 class EmployeeDetailView(DetailView):
queryset=Employee.objects.all()
template_name='testapp/detail.html'
def get_context_data(self,**kwargs):
context=super().get_context_data(**kwargs)
return context
在上面的例子中,EmployeeDetailView 類正在尋找一個對象(DetailView 的默認上下文),這個對象是通過調用父類中存在的方法提供的,即 get_context_data 這個方法接受 kwargs 作為參數。
kwargs 是一個可變長度的參數列表。函數 get_context_data 返回包含對象的上下文,這個對象將被發送到 detail.html 文件,以顯示當前對象持有的數據(渲染過程)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.