【发布时间】:2021-05-29 21:04:33
【问题描述】:
我正在使用 Django REST 框架构建一个 API-first 应用程序,因此它根本没有 html 视图,并且只使用基于令牌的身份验证。同时,我想使用 Django 管理界面,这没问题,但我担心性能成本,因为它依赖于很多应用程序(会话、标准身份验证、消息、csrf 等)。 ),在主应用中不需要,但会在每个请求上运行。
有没有办法将特定于管理员的中间件设置为仅在管理界面上运行?
我知道我可以对它们进行子类化并在所有请求上引发 MiddlewareNotUsed,但访问管理站点的请求除外,但也许有一些内置或众所周知的解决方案?
【问题讨论】:
-
你无缘无故地偏执。您已经在构建一个 API 优先应用程序,而您在 Django Admin 上要做的最多的事情可能是调试或只是检查您的数据库。不用担心性能。不要想太多。
-
@Sahil 这正是问题所在。无论我如何使用管理员,它所依赖的所有应用程序都会在每个请求上运行,包括来自 api 用户的请求
标签: django django-rest-framework