Django多租户:如何为每个租户定制Django设置? [英] Django multitenant: how to customize django setting "ACCOUNT_EMAIL_VERIFICATION" per tenant?

查看:0
本文介绍了Django多租户:如何为每个租户定制Django设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Django==1.11.7
django-tenant-schemas==1.8.0
django-allauth==0.34.0
使用Django-Tenant-架构(Postgres)的多租户站点。 对于不同的租户,需要不同的设置。

具体地说,ACCOUNT_EMAIL_VERIFICATION需要不同的设置

一个租户需要ACCOUNT_EMAIL_VERIFICATION = "optional",而另一个租户需要ACCOUNT_EMAIL_VERIFICATION ="mandatory"

查看source code,该设置似乎无法自定义,它已针对整个Django站点进行了修复。

->如何做到这一点?

推荐答案

您可以在运行时计算设置,因为它只是一段Python代码。

使用您喜欢的方式以编程方式设置该特定代码。一个例子:

# predefine the settings per tenant
ACCOUNT_EMAIL_VERIFICATION_PER_TENANT = {
    "tenant_x": "mandatory",
    "tenant_y": "optional",
}

# implement get_tenant 

def get_tenant():
    # here be tenant logic
    pass

this_tenant = get_tenant()
ACCOUNT_EMAIL_VERIFICATION = ACCOUNT_EMAIL_VERIFICATION_PER_TENANT[get_tenant()]

或者您可以拥有多个设置文件并按您的意愿加入它们。以下是how django does

哦,如果您想要将逻辑从设置文件中分离出来,并在评估设置之前运行它,您可以在启动服务器时检查执行的轨迹(例如,从manage.py开始,然后在其中插入get_tenant逻辑)。它很可能位于从wsgi.py文件开始的某个位置--创建application实例并开始所有Django乐趣的地方。

编程始终由您掌控。

这篇关于Django多租户:如何为每个租户定制Django设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆