【发布时间】:2020-02-16 15:43:59
【问题描述】:
我尝试序列化查询集。但我得到 {'non_field_errors': [ErrorDetail(string='Expected a list of items but got type "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)
序列化器.py
class SignupSerializer(serializers.ModelSerializer):
class Meta:
model = Signup
fields = '__all__'
【问题讨论】:
-
我无法理解您在这里要做什么。为什么您将查询集传递给序列化程序?
-
我正在尝试从数据库中获取行数据,这就是为什么我在这里使用过滤器并传递用户名,并尝试以 json 格式返回数据。
-
但是,如果您尝试从数据库中获取数据,为什么还要使用 post 方法呢?
-
是的,我正在尝试从数据库中获取数据。
-
我说了,那你为什么用post方法而不是get方法呢?