我有多个context processor
,每个我都要请求用户。每个都看起来像这样:
def UploadForm(request):
user = request.user
Uplo = UploadForm(request.POST or None, initial={user})
return {'Uplo': Uplo}
我看到这个效率不高,因为我多次请求用户,所以我考虑写一个大的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上找不到任何东西。
答案 0 :(得分:1)
从请求中获取用户并不是一件大事。这是o(1)操作。
但是,如果多个上下文处理器没有做同样的事情并且可以同时进行,那么创建一个大的上下文处理器应该更好。原因是你必须在同一个请求中多次进出该函数。
无论如何,如果你想要明确的差异,你可以在多个和俱乐部的上下文处理器中打印时间。
是的,如果你每次都在点击数据库,你应该打它们并优化你必须达到数据库的次数。