如何访问 django settings.py 中的模型或视图属性?

Posted

技术标签:

【中文标题】如何访问 django settings.py 中的模型或视图属性?【英文标题】:How to access model or views attributes in django settings.py? 【发布时间】:2016-05-05 16:07:00 【问题描述】:

我想更新我的电子邮件主机用户和密码,它存在于我的数据库中.. 我不知道如何更新它。但我在我的 settings.py 文件中提到了它。像这样,

EMAIL_HOST_USER = 'sender_mail@mail.com'

EMAIL_HOST_PASSWORD = 'passxxpass'....

 i want to change it dynamically while updating my database. 

我的表包含那些电子邮件 ID 和密码。它可以根据用户要求动态变化。所以我想在 EMAIL_HOST_USERPASSWORD... 中做同样的事情来发送我的邮件..

【问题讨论】:

【参考方案1】:

Django 的send_mail(我猜你正在使用)有两个参数用于auth_userauth_password,你应该使用它们而不是尝试更改设置

send_mass_mail等也有这些参数

【讨论】:

【参考方案2】:

你不应该这样做。设置用于不变的事物;如果您的电子邮件是动态的,您应该在发送邮件时在视图中进行设置。

【讨论】:

我在 view 中这样做了,但我无法从 views.py 中设置邮件用户名和密码... 怎么做?我正在使用“EmailMultiAlternatives”将 html 模板与我的邮件一起发送【参考方案3】:

你不能这样做。另外,您不应该这样做。

通过在数据库中创建“变量”表来实现此目的的更好方法。 从表而不是设置文件中访问值。

【讨论】:

【参考方案4】:
I Solved this by importing the below package in my view file,
   import django.conf as conf ... 
and using this i made the changes whatever i want dynamically like, for changing my EMAIL_HOST by using like this, 
  get_mail_data = mymodels.objects.get(head='Admin')
  conf.settings.EMAIL_HOST_USER = get_mail_data.from_mail

above is just an example what i used in my code... there from_mail is field present in my table.

【讨论】:

以上是关于如何访问 django settings.py 中的模型或视图属性?的主要内容,如果未能解决你的问题,请参考以下文章

我可以从 Django 中的模板访问 settings.py 中的常量吗?

django中settings.py中变量的全局引用

Django settings.py 中设置访问 MySQL 数据库一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息

Django settings.py 中设置访问 MySQL 数据库一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息

如何让一个django包修改settings.py?

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)