I try to serialize query set. But Im getting {'non_field_errors': [ErrorDetail(string='Expected a list of items but got type "QuerySet".', code='not_a_list')]} error. How to solve this error.
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__'
It is that you have used many = True
in the view when you pass the data to the serializer, but you are in fact only sending a single message.
def post(self, request, formate = None):
serializer = SignupSerializer(data= signup_filtered_data)
See the actual answer: Actual answer