Django在POST请求上返回500

问题描述 投票:0回答:1

所以,我有这个简单的联系表单,Django通过向我和与我们联系的人发送电子邮件来处理。我已经编写了一个AJAX函数来处理它。唯一的是,无论我尝试什么,我都保持500身份。

我的Django(1.11)代码:

def contato(request):
    if request.method == 'POST':
        name = request.POST['name']
        email = request.POST['email']
        phone = request.POST['phone']
        message = request.POST['message']
        newmessage = "Mensagem recebida de {}.\nTelefone: {}\ne-mail {}\n {}".format(name, phone, email, message)
        send_mail(
            'Nova mensagem pelo site',
            newmessage,
            'PLACEHOLDER@EMAIL',
            ['PLACEHOLDER@EMAIL'],
            fail_silently=False
        )
        send_mail(
            'Recebemos sua mensagem!',
            'Olá, {}!\nRecebemos sua mensagem e entraremos em contato em breve.'.format(name),
            'PLACEHOLDER@EMAIL',
            [email],
            fail_silently=False
        )
        return HttpResponse()

这是我的AJAX请求:

form.addEventListener("submit", function(event) {
    event.preventDefault();
    let dadoscontato = {
        name: name.value,
        email: email.value,
        phone: phone.value,
        message: message.value,
        csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value
    };

    fetch('/contato/', {
        method: 'POST',
        credentials: 'same-origin',
        headers: {
            "X-CSRFToken": getCookie("csrftoken"),
            "Accept": "application/json",
            "Content-Type": "application/json"
        },
        body: JSON.stringify(dadoscontato),
    })
    .then(function(response){
        console.log(response)
        return response.json();
    })
    .then(function(response){
        alert('Mensagem enviada com sucesso!');
    });
});
javascript django
1个回答
0
投票

仅将此问题标记为已解决:

我在加载响应时必须运行.decode()。现在一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.