我在forms.py中有一个像这样的选择字段:
ASSUNTO = ( ('1', u'Informações'),
('2', 'Comercial'),
('3', 'Financeiro'),
('4', 'Outro'))
在我的views.py中,当我从选择字段中将所选值作为电子邮件主题发送时,它就像:
在我的html页面中选择我的表单中的“ Comercial ”
通过以下主题收到的电子邮件:' 2 - MY COMPANY '
我的views.py中的代码:
from django.shortcuts import render
from forms import FormContato
from django.core.mail import send_mail
def HomeContato(request):
form = FormContato()
if request.method == 'POST':
form = FormContato(request.POST)
if form.is_valid():
send_mail( form.cleaned_data['assunto'] + ' - MY COMPANY', 'Nome: ' + form.data['nome'] + ' ' + form.data['sobrenome'] + ' :: ' + 'E-mail: ' + form.data['email'] + ' :: ' + 'Mensagem: ' + form.data['menssagem'], 'noreply@email.com.br', ['email@gmail.com'], fail_silently=False)
return render(request, 'contato/contato.html', locals())
else:
return render(request, 'contato/contato.html', locals())
else:
return render(request, 'contato/contato.html', locals())
如何使用此命令获取主题:'Comercial - MY COMPANY'?
提前感谢所有人!
答案 0 :(得分:2)
这不是很漂亮,但以下应该这样做:
{choice[0]:choice[1] for choice in form.fields['assunto'].choices}[form.cleaned_data['assunto']]
注意:在阅读完其他答案后,你可以dict(form.fields['assunto'].choices)[form.cleaned_data['assunto']]
- 我没想到使用内置函数而不是理解
另外你得到“2”的原因是选择元组是值的元组=>标签元组。
如果你想让这个值不是一个无意义的整数,那就像这样:
ASSUNTO = ( (u'Informações', u'Informações'),
('Comercial', 'Comercial'),
('Financeiro', 'Financeiro'),
('Outro', 'Outro'))
然后保持您的视图与目前的视图相同
答案 1 :(得分:1)
使用:
dict(ASSUNTO)[form.cleaned_data['assunto']] + ...