簡體   English   中英

get_context_data 方法 Django

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM