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