Django rest Framework - ожидал список элементов, но получил тип "QuerySet" - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь сериализовать набор запросов. Но я получаю {'non_field_errors': [ErrorDetail (string = 'Ожидается список элементов, но получен тип "QuerySet".', Code = 'not_a_list')]} ошибка. Как решить эту ошибку.

    def post(self, request):
        data = request.data
        user_name = data.get('username')
        signup_filtered_data = Signup.objects.filter(username= user_name).values()
        print(signup_filtered_data)
        serializer = SignupSerializer(data= signup_filtered_data, many=True)
        serializer.is_valid()
        print(serializer.errors)
        signup_jason_data = json.dumps(serializer.data)
        return HttpResponse(signup_jason_data)

models.py

class Signup(models.Model):
    first_name = models.CharField(max_length=50, blank=True, null=True)
    last_name = models.CharField(max_length=50, blank=True, null=True)
    email = models.EmailField(max_length=50, unique= True)
    phone_number = models.CharField(max_length=12, unique= True)
    username = models.CharField(max_length=50, unique= True)
    password = models.CharField(max_length=50, blank=True, null=True)

serializers.py

class SignupSerializer(serializers.ModelSerializer):

    class Meta:
        model = Signup
        fields = '__all__'

1 Ответ

1 голос
/ 20 октября 2019

Это то, что вы использовали many = True в представлении при передаче данных в сериализатор, но на самом деле вы отправляете только одно сообщение.

def post(self, request, formate = None):
   serializer = SignupSerializer(data= signup_filtered_data)

См. Фактический ответ: Фактический ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...