def save_local_setting_JSON(dest, content):
fwrite = open(dest, 'wb')
dict_json = eval(json.dumps(content))
string_json =json.dumps(dict(dict_json))
fwrite.write('EMAIL_DEVELOPMENT='+string_json+"\n")
fwrite.close()
def config_mail_show(request, template='admin/config_mail.html'):
form = forms.ConfigMailForm()# for for user input their mail config
context = {
'site_host' : settings.SITE_HOST,
'default_from_email' : settings.DEFAULT_FROM_EMAIL,
'email_host' : settings.EMAIL_HOST,
'email_port' : settings.EMAIL_PORT,
'email_host_user' : settings.EMAIL_HOST_USER,
'email_host_password' : settings.EMAIL_HOST_PASSWORD,
'email_use_tls' : settings.EMAIL_USE_TLS,
'form':form
}
if request.method == "POST":
form = forms.ConfigMailForm(request.method)
save_local_setting_JSON('local_setting.py', request.POST)
return render_to_response(template, context)
local_setting.py will be in this format:
EMAIL_DEVELOPMENT={"email_host_password": "xxxxxx", "site_host": "127.0.0.1:8000", "default_from_email": "xxx xxx <[email protected]>", "email_use_tls": "False", "email_port": "25","email_host_user": "[email protected]", "email_host": "smtp.xxx.xx"}
In settings.py I Added
from local_setting import *
if EMAIL_DEVELOPMENT.has_key('save'):
SITE_HOST = EMAIL_DEVELOPMENT['site_host']
DEFAULT_FROM_EMAIL = EMAIL_DEVELOPMENT['default_from_email']
EMAIL_HOST = EMAIL_DEVELOPMENT['email_host']
EMAIL_PORT =EMAIL_DEVELOPMENT['email_port']
EMAIL_HOST_USER = EMAIL_DEVELOPMENT['email_host_user']
EMAIL_HOST_PASSWORD = EMAIL_DEVELOPMENT['email_host_password']
EMAIL_USE_TLS = EMAIL_DEVELOPMENT['email_use_tls']
else:# My Development
SITE_HOST = '127.0.0.1:8000'
DEFAULT_FROM_EMAIL = 'xxxxx'
EMAIL_HOST = 'xxxxx'
EMAIL_PORT = 25
EMAIL_HOST_USER ='xxxx'
EMAIL_HOST_PASSWORD = 'xxxxx'
EMAIL_USE_TLS = False
I Am not sure it's good ways to make User Interface that provide user for they own configuration such as Mail.
everyone here Could give the good choice for do this?