繁体   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