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

2024-06-23 19:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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

现在,我有一个模型。它名为AdminContact,它只允许一行。我认为这样做不合适。此外,它还会导致循环依赖。例如,我不能使用我的模型email,因为循环依赖,它包含了模型中所有的接触方法,比如send_message_to_all_userssend_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()

你能给我一些如何处理这类数据的建议吗?在


Tags: to数据from模型importsend信息message
1条回答
网友
1楼 · 发布于 2024-06-23 19:18:31

一种很好的方法是将其放入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,它允许您在db端存储常量,并且可以从django-admin进行编辑。在

相关问题 更多 >

    热门问题