Python 如何使用admin更改settings.py变量?
我正在《Django》的“联系我们”页面上工作。我想允许管理员在Python 如何使用admin更改settings.py变量?,python,django,smtp,Python,Django,Smtp,我正在《Django》的“联系我们”页面上工作。我想允许管理员在django admin中更改他们的smtp、名称、密码和端口 因此,有一个表admin\u contact,可以通过admin页面进行修改。问题是我不知道如何设置电子邮件主机、电子邮件端口、电子邮件主机和用户 在settings.py内发送电子邮件\u主机\u密码(使用型号admin\u联系人),我必须将其设置为能够使用views.py中的发送邮件方法 有办法吗?这是强制解决方案,但它解决了我的问题 使用表单中的信息(电子邮件、密
django admin
中更改他们的smtp
、名称
、密码
和端口
因此,有一个表admin\u contact
,可以通过admin
页面进行修改。问题是我不知道如何设置电子邮件主机、电子邮件端口、电子邮件主机和用户
在settings.py
内发送电子邮件\u主机\u密码(使用型号admin\u联系人
),我必须将其设置为能够使用views.py中的发送邮件
方法
有办法吗?这是强制解决方案,但它解决了我的问题
使用表单中的信息(电子邮件、密码、smtp等)生成一个文件(email_config.py)
电子邮件_config.py
CONFIG_HOST = "smtp.gmail.com"
CONFIG_EMAIL = "mail@gmail.com"
CONFIG_PASS = "******"
CONFIG_PORT = "587"
从您的设置导入电子邮件_config.py
设置.py
from email_config import CONFIG_HOST, CONFIG_EMAIL, CONFIG_PASS, CONFIG_PORT
...
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
# G-mail
EMAIL_HOST = CONFIG_HOST
EMAIL_HOST_USER = CUSTOM_EMAIL
EMAIL_HOST_PASSWORD = CONFIG_PASS
EMAIL_PORT = CONFIG_PORT
EMAIL_FROM_EMAIL = EMAIL_HOST_USER
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
测试
> python manage.py shell
> from django.core.mail import EmailMessage
> msg = EmailMessage("Hi, man","This is a test message",to=["juan@gmail.com"])
> msg.send()
1
Apache和mod_wgsi需要在更改信息后重新启动否(您必须直接使用smtp模块)