簡體   English   中英

多個vs一個大context_processor

[英]Multiple vs one big context_processor

我有多個context processor ,在每個context processor中我都必須請求用戶。 這些每個看起來像這樣:

def UploadForm(request):
  user = request.user
  Uplo = UploadForm(request.POST or None, initial={user})
  return {'Uplo': Uplo}

我看到這是無效的,因為我多次請求用戶,所以我考慮編寫一個大型context processor ,在該context processor中我一次定義所有窗體。

def AllForms(request):
  user = request.user
  Uplo = UploadForm(request.POST or None, initial={user...})
  SetForm = SetForm(request.POST or None, initial={user...})
  ...
  return {'Uplo': Uplo,'SetForm': SetForm}

有人可以告訴我我在這里有什么收獲嗎? 上下文處理器的通用標准是什么? 我在SO上找不到任何東西。

從請求中獲取用戶並不是一件大事。 它是o(1)操作。

但是,如果多個上下文處理器沒有做不同的事情並且可以一次執行,那么最好創建一個大型上下文處理器。 原因是您必須在同一請求中多次進入和退出該功能。

無論如何,如果您想要確定性的差異,則可以只在多個上下文環境處理器中打印時間。

是的,如果您每次都訪問數據庫,則應將它們合並在一起並優化必須訪問數據庫的次數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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