Объект типа Email не является JSON сериализуемым, Как создать или обновить объект модели Django

Я пытаюсь создать объект из моей модели Email, если 'user_email', который является user_email = models.CharField(primary_key=True, max_length=200) уже существует, просто обновите его, если он не существует, создайте новый, я покажу вам, как я создаю мой новый объект.

Я получаю следующую ошибку:

TypeError: Object of type Email is not JSON serializable

Мой экстракт models.py:

class Email(models.Model):
    user_email = models.CharField(primary_key=True, max_length=200)
    user_phone_number = models.IntegerField()
    user_device_id = models.CharField(max_length=200)#request.META.get('HTTP_DEVICE', '')
    lat = models.DecimalField(max_digits=22, decimal_places=16, blank=True, null=True)
    lng = models.DecimalField(max_digits=22, decimal_places=16, blank=True, null=True)
    user_address = models.CharField(max_length=200)
    creation_date = models.DateTimeField(default=None)
    email_status = models.BooleanField(default=False)
    email_score = models.IntegerField()
    valid_email = models.BooleanField(default=False)
    fraud = models.BooleanField(default=False)

Моя выдержка из views.py: class UserListView(APIView): serializer_class = EmailSerializer queryset = Email.objects.all() pagination_class = StandardResultsSetPagination

    def get_serializer_class(self):
        if self.action == 'list':
            return EmailListSerializer
        return EmailSerializer
    
    def post(self, request, *args, **kwargs):
        parametros = request.POST
        email='email=' + request._full_data['user_email']
        response = UserConnector(email).get_user_data()
        obgs = response[1]['results']
        if len(obgs) == 0:
            user_email = self.request.POST.get('user_email')
            email_stat = ''
            email_scor = ''
            email_valid = ''
            frau = ''
        else:
            obg = response[1]['results'][0]

            user_email = self.request.POST.get('user_email')
            email_stat = obg.get('email_status')
            email_scor = obg.get('email_score')
            email_valid = obg.get('valid_email')
            frau = obg.get('fraud')

        NewEmail = Email(
            user_email = user_email,
            user_phone_number = self.request.POST.get('user_phone_number'),
            user_device_id = request.META.get('HTTP_DEVICE', ''),
            lat = self.request.POST.get('lat'),
            lng = self.request.POST.get('lng'),
            user_address = self.request.POST.get('user_address'),
            creation_date = timezone.now,
            email_status = email_stat,
            email_score = email_scor,
            valid_email = email_valid,
            fraud = frau
        )
        return Response(NewEmail)

Я создаю объект NewEmail, который является экземпляром для модели Email, затем я хочу сделать NewEmail.save() и вернуть Response(NewEmail) для DRF, чтобы вернуть JSON созданного или обновленного объекта.

Экземпляр (NewEmail) не может быть передан в Response напрямую. Сначала необходимо сохранить этот экземпляр, т.е. NewEmail.save(), а затем передать его в сериализатор EmailSerializer. А затем передать этот сериализованный ответ в Response.

NewEmail.save()

serializer = EmailSerializer(NewEmail)

return Response(serializer.data)

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