Django Rest Framework - объект типа 'не является сериализуемой ошибкой json - PullRequest
0 голосов
/ 20 мая 2018

Я создаю api rest используя Django Rest Framework.Я использую Djanfo 2.0.5 и python 3. Я получаю сообщение об ошибке «Объект типа« тип »не поддерживает сериализацию в формате JSON».на момент отправки формы в браузере.Я попытался с POSTMAN, а также получить ту же ошибку.Я приложил снимки моего кода модели, сериализаторов и классов представления.

from django.db import models

# Create your models here.


class User(models.Model):

    full_name = models.CharField(max_length=255, blank=False)
    email = models.EmailField(blank=False, unique=True)
    password = models.CharField(max_length=100, blank=False)
    profile_pic = models.FileField()
    age = models.CharField(max_length=3, blank=False)
    location_lat = models.CharField(max_length=100, blank=False)
    location_long = models.CharField(max_length=100, blank=False)
    address = models.CharField(max_length=255, blank=False)
    experience_level = models.CharField(max_length=50, blank=False)
    utr_rating = models.CharField(max_length=50, blank=False)
    match_price = models.IntegerField
    auth_token = models.CharField(max_length=100, blank=False, unique=True)
    fb_token = models.CharField(max_length=100, unique=True)
    date_created = models.DateTimeField(auto_now_add=True)
    date_modified = models.DateTimeField(auto_now=True)

    def __str__(self):
        return "{}".format(self.full_name)
from rest_framework import serializers
from .models import User


class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User

        fields = ('id',
                  'full_name',
                  'email',
                  'password',
                  'profile_pic',
                  'age',
                  'location_lat',
                  'location_long',
                  'address',
                  'experience_level',
                  'utr_rating',
                  'match_price',
                  'auth_token',
                  'fb_token',
                  'date_created',
                  'date_modified')
        read_only_fields = ('date_created', 'date_modified', 'profile_pic')
from rest_framework import generics
from .serializers import UserSerializer
from .models import User


class CreateUser(generics.ListCreateAPIView):
    queryset = User.objects.all()
    serializer_class = UserSerializer

    def perform_create(self, serializer):
        serializer.save()

Traceback

1 Ответ

0 голосов
/ 21 мая 2018

Этот код будет работать ..

class CreateUser(generics.ListCreateAPIView):
    serializer_class = UserSerializer
    queryset = User.objects.all()

    def create(self, request, *args, **kwargs): 
       serializer = UserSerializer(data=request.data)
       if not serializer.is_valid(raise_exception=False):
          return Response({"status":"failure","status_message":serializer.errors}, status=status.HTTP_400_BAD_REQUEST)

       serializer.save()
       return Response({"status":"success","status_message":"User Created Successfully"}, status=status.HTTP_200_OK)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...