Django 多个vs一个大型上下文处理器

Django 多个vs一个大型上下文处理器,django,performance,django-context,Django,Performance,Django Context,我有多个上下文处理器,每个处理器中我都必须请求用户。每一个都是这样的: def UploadForm(request): user = request.user Uplo = UploadForm(request.POST or None, initial={user}) return {'Uplo': Uplo} 我发现这样做效率不高,因为我多次请求用户,所以我考虑编写一个大型上下文处理器,一次定义所有表单 def AllForms(request): user = requ

我有多个
上下文处理器
,每个处理器中我都必须请求用户。每一个都是这样的:

def UploadForm(request):
  user = request.user
  Uplo = UploadForm(request.POST or None, initial={user})
  return {'Uplo': Uplo}
我发现这样做效率不高,因为我多次请求用户,所以我考虑编写一个大型
上下文处理器
,一次定义所有表单

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}

有人能告诉我我在这里有什么收获吗?上下文处理器的通用标准是什么?我在上面找不到任何东西。

从请求中获取用户并不是一件大事。这是o(1)操作

但是,如果多个上下文处理器没有做不同的事情,并且可以一次完成,那么最好按照您的说法创建一个大的上下文处理器。原因是您必须在同一请求中多次进出函数

无论如何,如果您想要明确的差异,您可以在多个和多个上下文处理器中打印时间


是的,如果你每次都要访问数据库,你应该使用它们并优化访问数据库的次数。

我不知道你为什么认为多次请求用户效率低下。@DanielRoseman在性能方面没有任何请求不好吗?我是一个初学者,可能对这样的事情投入了太多的精力,但是每次都会调用上下文处理器,所以我希望尽可能快地保留它们。