zoukankan      html  css  js  c++  java
  • Django rest_framework----序列化组件

    生成hypermedialink

    serializer.pclass BookModelSerializers(serializers.ModelSerializer):

    class Meta:
            model = Book
            fields = "__all__"
    
        publish=serializers.HyperlinkedIdentityField(
                view_name="detailpublish", #urls.py detailpublish视图的别名
                lookup_field="publish_id", #book表字段名
                lookup_url_kwarg="pk",     #对到url里的(?P<pk>d+)
        )


    视图使用时加 context={'request': request}
    res=BookSerializers(ret,many=True,context={'request': request})

    urls.py

      url(r'^publishes/(?P<pk>d+)/$', views.PublishDetailView.as_view(),name="detailpublish"), #  View:view(request)=====APIView:dispatch()
    
      url(r'^books/(d+)/$', views.BookDetailView.as_view(),name="detailbook"),
        #url(r'^books/(d+)/$', View:view),     # view(request)

     

    post请求save()时重写create方法

    因为自定制了字段

    publish=serializers.CharField(source="publish.pk")
    class BookModelSerializers(serializers.ModelSerializer):
        class Meta:
            model = Book
            fields = "__all__"
    
        publish=serializers.CharField(source="publish.pk")
       # authors=serializers.CharField(source="authors.all")
        # authors = serializers.SerializerMethodField()
        # def get_authors(self,obj):
        #     temp=[]
        #     for obj in obj.authors.all():
        #         temp.append(obj.name)
        #     return temp
    
        def create(self, validated_data):
            print("validated_data",validated_data)
            book=Book.objects.create(title=validated_data["title"],price=validated_data["price"],pub_date=validated_data["pub_date"],publish_id=validated_data["publish"]["pk"])
            book.authors.add(*validated_data["authors"])
    
            return book
  • 相关阅读:
    我的python中级班学习之路(全程笔记第一模块) (第一章)语言基础
    Python_常用模块
    Python_装饰器、迭代器、生成器
    Python_函数
    Python_深浅拷贝
    Python_文件操作
    Python_三级目录
    Python_循环判断表达式
    Python_基础语法
    7段数码管绘制
  • 原文地址:https://www.cnblogs.com/hanbowen/p/9901107.html
Copyright © 2011-2022 走看看