2017-05-27 67 views
1

(首先对不起我的英语不好)Django - 我如何设置数据库设置文件中的值?

我需要知道是否存在任何方式来使用存储在数据库中的一些数据设置设置文件中的某些值。

例如邮件配置

EMAIL_HOST = '' 
EMAIL_HOST_USER = '' 
EMAIL_HOST_PASSWORD = '' 
EMAIL_PORT = 587 
EMAIL_USE_TLS = True 

我想,以填补使用我保存,我有在企业应用程序设置模型中的数据变量。

但像设置文件在服务器启动之前被收获,那么我不知道是否存在任何方式来做到这一点。

希望你能理解我。

谢谢!

回答

0

据我所知,Django设置应该是不可变的。这有多个原因,最明显的是Django不知道服务器的执行模型(prefork /多线程)。

另外,您无法从Django模型加载设置,因为在ORM中使用任何内容之前需要先加载设置。这意味着你不能从数据库设置你的电子邮件地址,你需要在settings.py文件本身设置电子邮件(硬编码)。

+0

多数民众赞成在我的想法......但今天我必须改变我的邮件服务器,然后我想......如果某些客户想要或必须做同样的事情,也许我可以添加一些公司配置,并把那里的邮件值...也许有一些应用程序的邮件,可以从数据库配置...我不知道! – marcosgue

+1

@marcosgue,我发现了这样的问题,https://stackoverflow.com/questions/22281865/dynamic-django-mail-configuration。希望它可以帮助你。 –

+0

这意味着,您可以使用send_mail,您必须创建自己的电子邮件后端,它使用您的自定义设置,然后将其传递给连接属性中的send_mail。 –

0

电子邮件主机必须硬编码,如果你设置了某些与你自己的逻辑有关的东西,你可以试试django-constance。或者你可以尝试从txt读取设置,我不知道它是否有用,但它是一个有价值的方法。