仅当设置了某个环境变量时,如何才能在 Django 站点上要求管理员登录?

How can I require admin login on a Django site only if a certain environment variable is set?

我有两个 AWS Elastic Beanstalk 环境使用相同的 Django Web 服务器提供内容。其中之一是暂存站点(即用于 development/testing 目的),其中之一是生产网站。在暂存站点上,通常需要付费的功能可以免费使用,以简化测试和开发。我想避免让用户偶然发现这个暂存站点并免费访问通常需要付费的功能。

为防止这种情况,我想要求员工登录 所有 的视图,但仅限于暂存站点。我有一个在 settings.py 中检查的环境变量,它确定服务器是否在登台或生产环境中 运行。是否有一些 elegant/clean 方法可以通过检查该环境变量来完成此操作?

如果环境变量表明您正在暂存,我会添加一个 Middleware 检查此条件到 MIDDLEWARE 设置变量。

简单点,兄弟! 只需在 urls.py 文件

中使用条件
from django.conf import settings
urlpatterns = [ YOU REGULAR URLS HERE ]

if settings.SPECIFIC_VALUE:
    urlpatterns = [
        ADDITIONAL URLS WHICH WILL BE AVAILABLE IF SPECIFIC VALUE IS ON
    ] + urlpatterns