Django多租户:如何为每个租户定制Django设置? [英] Django multitenant: how to customize django setting "ACCOUNT_EMAIL_VERIFICATION" per tenant?
本文介绍了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屋!
查看全文