在Django中存储全局数据的位置

时间:2016-06-09 17:31:59

标签: python django django-models

我应该在哪里存储管理员的电子邮件,电话号码等信息?我希望管理员能够随时更改此数据。

现在,我有一个模型。它被称为email,它只允许一行。我认为这不是一个合适的方法。而且,它会导致循环依赖。例如,我无法使用我的模型send_message_to_all_users,因为循环依赖性,模型中包含send_alert_to_admin# -*- coding: utf-8 -*- from django.core.mail import EmailMessage from models import AdminContact def send_message_to_admin(subject,message): EmailMessage(subject,message,to=[AdminContact.objects.all()[0].email]).send() 等所有联系方式。

我现在这样做的方式:

pip install nose
nosetests -v numpy
nosetests -v sklearn

您能否就如何处理此类数据向我提出任何建议?

1 个答案:

答案 0 :(得分:2)

执行此操作的一个好方法是将其放在settings.py文件中,如下所示:

ADMIN_CONTACT = {email: 'foo@bar.com', phone: '0585522002'}

然后您可以通过导入django设置在任何地方访问它:

from django.conf import settings 
from django.core.mail import EmailMessage

def send_message_to_admin(subject,message):
    EmailMessage(subject,message,to=[settings.ADMIN_CONTACT['email']]).send()

警告:

您只能通过修改settings.py代码来替换这些值。

其他解决方案:

您还可以使用基础User模型来获取所有超级用户并将其邮寄,或者查看django-constance,它允许您在数据库端存储常量,并可以从{{1 }}