我是Django REST框架的新手。这是一个非常noob的问题,但我无法理解序列化器是如何工作的?我们如何将数据发送到序列化器以及如何从中获取数据
我正在尝试将我的查询集序列化为字典列表
这是我的 views.py
:
def get(self,request):
z= int(request.GET.get('q',''))
queryset=[]
queryset.append(models.Cart.objects.filter(UserId=z).values('id'))
k=[]
for values in queryset:
k.append(models.ProductsDiscription.objects.filter(id=values).values())
abc = serializers.NewSerializer(k,many=True)
return JsonResponse({'pcartlist':((abc))})
如果我不使用序列化程序,我会收到错误:
k:queryset is not json serializable.
所以我尝试创建一个序列化程序,但是我仍然遇到同样的错误。我不知道如何使用序列化器。
serializers.py
class NewSerializer(serializers.Serializer):
product_id= serializers.IntegerField()
k是词典列表,我也不知道要使用哪个字段。
我尝试过从各个可能的地方阅读和理解,但我无法理解序列化程序的工作原理。如果可能的话,请通过一个非常简单的例子来帮助我。这将非常有帮助。
答案 0 :(得分:-1)
请将查询集直接传递给序列化程序。如果要序列化模型,可以使用modelSerializer
。模型序列化程序还需要模型名称作为META
属性。可以找到文档here
序列化查询集:
qs = YourModel.objects.all()
serializer = YourSerializer(qs, many=True)
序列化后的结果可以从serializer.data
获得。您可以print (serializer.data)
查看结果。