本篇共 1508 字

django原生序列化

作者:admin   分类:Django   发布:6 月前   阅读量:1   浏览量:1

假如我们有一个商品列表Goods模型,并有一些与商品相关的字段!

在views.py中开始写序列化视图:

  1. 使用model_to_dict:
  • model_to_dict可以将模型的字段根据字段名存入一个字典,但对时间字段和文件字段无法识别
class GoodsListView(View):
    def get(self, request):
    	from django.http import HttpResponse
    	import json
    	from django.forms.models import model_to_dict
    	for good in goods:
    		json_dict = model_to_dict(good)
    		json_list.append(json_dict)
    	return HttpResponse(json.dumps(json_list), content_type="application/json")

2. 使用django自己提供的序列化器serializers

# 最底层的View
from django.views.generic.base import View
from .models import Goods


class GoodsListView(View):

    def get(self, request):
        """
        通过django的view实现商品的列表页
        :param request
        :return
        """
        goods = Goods.objects.all()
        import json
        # 引入django提供的序列化器
        from django.core import serializers
        # fields是一个可选参数,不定义则输出全部字段,定义的话只输出定义的字段,主键始终为id
        json_data = serializers.serialize('json', goods, fields=('name', 'category'))
        print(json_data)
        json_data = json.loads(json_data)
        from django.http import HttpResponse, JsonResponse
        return JsonResponse(json_data, safe=False)

 

标签: django drf
本篇共 0 条评论

留言内容:

还没有任何评论!

还没有登陆,请登录后发表评论!