Django отправка электронных писем и ответ на Vue/Axios

Я пытаюсь отправить электронную почту из Vue3/Axios фронтенда через Django. В Vue3 я отправляю поля своей формы, используя axios:

<script lang="ts">
        import axios from 'axios';
        axios.defaults.xsrfCookieName = 'csrftoken';
        axios.defaults.xsrfHeaderName = 'X-CSRFToken';
        export default {
            name: "Contact",
            data() {
                return {
                    name: '',
                    email: '',
                    phone: '',
                    message: ''
                };
            },
            methods: {
                sendEmail() {
                    axios
                        .post("send_email/", {
                            name: this.name,
                            email: this.email,
                            phone: this.phone,
                            message: this.message,
                            xstfCookieName: 'csrftoken',
                            xsrfHeaderName: 'X-CSRFToken',
                            headers: {
                                'X-CSRFToken': 'csrftoken',
                            }
                        })
                        .then((response) => {
                            console.log(response);
                        })
                }
            }
        };
        </script>

Я могу видеть свои поля в заголовке запроса без каких-либо проблем. Я не смог написать правильное представление, отправляющее электронную почту и отвечающее на запрос.

def contactView(request):
    if (request.POST):
        try:
            form = ContactForm(request.POST)
            if form.is_valid():
                subject = form.cleaned_data['subject']
                name = form.cleaned_data['name']
                from_email = form.cleaned_data['email']
                message = form.cleaned_data['message']
                print(subject)
                try:
                    send_mail(subject, message, from_email, ['admin@example.com'])
                    return HttpResponse(json.dumps({'response': 'Ok'}), content_type = "application/json")
                except BadHeaderError:
                    return HttpResponse(json.dumps({'response': 'Ko', 'message': 'invalid header found'}), content_type = "application/json")
        except:
            return HttpResponse(json.dumps({'response': 'Ko', 'message': 'Cannot be sent'}), content_type = "application/json")
    else:
        return HttpResponse(json.dumps({'response': 'Ko', 'message': 'Cannot be sent'}), content_type = "application/json")

Можете ли вы помочь мне исправить это?

Спасибо

Вернуться на верх