1

我的 forms.py 中有一个这样的选择字段:

ASSUNTO = ( ('1', u'Informações'), 
        ('2', 'Comercial'), 
        ('3', 'Financeiro'), 
        ('4', 'Outro'))

在我的views.py中,当我从选择字段中发送选择的值作为电子邮件主题时,它就像:

在我的 html 页面中的表单中选择“商业”

收到的电子邮件主题为:“ 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())

如何使用此命令将主题设为:“商业 - 我的公司”?

在此先感谢大家!

4

2 回答 2

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'))

然后保持您的视图与您当前的视图相同

于 2012-11-30T18:25:17.450 回答
1

采用:

dict(ASSUNTO)[form.cleaned_data['assunto']] + ...
于 2012-11-30T18:10:37.197 回答