Nm, address = addr ValueError: недостаточно значений для распаковки (ожидалось 2, получено 1), Django Rest Framework

Я работаю над личным проектом, который представляет собой электронную коммерцию, созданную с помощью Django Rest Framework и Vue.js. Я создал контактную форму, но когда я пытаюсь отправить ее, возникает ошибка:

/venv/lib/python3.9/site-packages/django/core/mail/message.py", строка 96, in sanitize_address nm, address = addr ValueError: недостаточно значений для распаковки (ожидалось 2, получилось 1)

Кажется, что ему нужно какое-то дополнительное значение, которое он не получает из моего views.py.

.

Это мой сериализатор:

from rest_framework import serializers from . models import Contact class ContactForm(serializers.ModelSerializer): class Meta: model = Contact fields = ( 'first_name', 'last_name', 'phone', 'email', 'subject', 'message', )

Это мой Views.py:

from rest_framework import status from rest_framework. response import Response from rest_framework.decorators import api_view from django.core.mail import send_mail from django.template. loader import render_to_string from .models import Contact from .serializers import ContactForm @api_view(['POST']) def contact_form_post(request): if request.method == "POST": serializer = ContactForm(data=request.data) if serializer.is_valid(): first_name = serializer.validated_data['first_name'], last_name = serializer.validated_data['last_name'], phone = serializer. validated_data['phone'], email = serializer.validated_data['email'], subject = serializer.validated_data['subject'], message = serializer. validated_data['message'] print(first_name, last_name, phone, email, subject, message) context = { 'first_name': first_name, 'last_name': last_name, 'phone': phone, 'email': email, 'subject': subject, 'message': message } send_mail( subject, render_to_string('emails/contact. txt', context), email, ['emailThatItryToUse@gmail.com'], fail_silently=False, auth_user=None, auth_password=None, connection=None, html_message=None ) serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Я проверил через консоль, определяется ли информация формы, и это так. Все это я получаю через v-model="".

А это моя конфигурация settings.py для электронной почты:

EMAIL_HOST = 'smtp. gmail.com' EMAIL_PORT = 587 EMAIL_HOST_USER = 'emailThatiTryToUse@gmail.com' EMAIL_HOST_PASSWORD = 'accessPasswordforThatEmail' EMAIL_USE_TLS = True

А это JavaScript для отправки данных в бэкенд:

 const data = { 'first_name': this.first_name, 'last_name': this.last_name, 'phone': this. phone, 'email': this.email, 'subject': this.subject, 'message': this.message, } axios .post('/api/v1/contacto/', data) .then(response => { this.$router.push('/') return response }) .catch(error => { this.errors.push('Algo funciona mal') console.log(error) })

Я очень надеюсь, что вы сможете помочь мне с этим. Спасибо!

if serializer.is_valid():

    first_name = serializer.validated_data['first_name'],
    last_name = serializer.validated_data['last_name'],
    phone = serializer.validated_data['phone'],
    email = serializer.validated_data['email'],
    subject = serializer.validated_data['subject'],

Я полагаю, что проблема вызвана запятыми в конце этих строк, что превращает присвоенные значения в кортежи. Зачем вы это делаете?

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