Output Django queryset as JSON

后端 未结 6 1717
陌清茗
陌清茗 2020-11-29 01:20

I want to serialize my queryset, and I want it in a format as this view outputs:

class JSONListView(ListView):
    queryset = Users.objects.all()

    def ge         


        
6条回答
  •  鱼传尺愫
    2020-11-29 02:02

    Try this:

    class JSONListView(ListView):
        queryset = Users.objects.all()
    
    
        def get(self, request, *args, **kwargs):
            data = {}
            data["users"] = get_json_list(queryset)
            return JSONResponse(data)
    
    
    def get_json_list(query_set):
        list_objects = []
        for obj in query_set:
            dict_obj = {}
            for field in obj._meta.get_fields():
                try:
                    if field.many_to_many:
                        dict_obj[field.name] = get_json_list(getattr(obj, field.name).all())
                        continue
                    dict_obj[field.name] = getattr(obj, field.name)
                except AttributeError:
                    continue
            list_objects.append(dict_obj)
        return list_objects
    

提交回复
热议问题