{"id":3546,"date":"2022-03-16T17:19:44","date_gmt":"2022-03-16T09:19:44","guid":{"rendered":"https:\/\/egonlin.com\/?p=3546"},"modified":"2022-03-16T17:19:44","modified_gmt":"2022-03-16T09:19:44","slug":"%e7%ac%ac%e4%b8%80%e8%8a%82%ef%bc%9a%e9%a1%b9%e7%9b%ae%e5%87%86%e5%a4%87","status":"publish","type":"post","link":"https:\/\/egonlin.com\/?p=3546","title":{"rendered":"\u7b2c\u4e00\u8282\uff1a\u9879\u76ee\u51c6\u5907"},"content":{"rendered":"<h2>\u9879\u76ee\u51c6\u5907<\/h2>\n<p><strong>\u540e\u7aef\u6846\u67b6\uff1a<\/strong>django-restframwork<\/p>\n<p><strong>\u5c0f\u7a0b\u5e8f:<\/strong>  \u521b\u5efa\u4e00\u4e2a\u5168\u65b0\u7684\u5c0f\u7a0b\u5e8f\uff0cappid\u7528\u4e0a\u9762\u6211\u4eec\u6ce8\u518c\u7684\u6b63\u5f0f\u7684appid<\/p>\n<p><strong>\u5c0f\u7a0b\u5e8f\u7684\u9759\u6001\u6587\u4ef6<\/strong>\uff1a\u5728\u9879\u76ee\u76ee\u5f55\u4e2d\u521b\u5efaimages\u6587\u4ef6\u5939\u5b58\u653e\u5c0f\u7a0b\u5e8f\u91cd\u8981\u7528\u5230\u7684\u56fe\u7247<\/p>\n<h4>models.py\u6570\u636e\u8868<\/h4>\n<p>\u540e\u7aef\u6240\u6709\u6570\u636e\u8868<\/p>\n<pre><code class=\"language-python\">from django.db import models\n\nimport django.utils.timezone as timezone\n# Create your models here.\n#\u7528\u6237\u8868\uff0c\u6ca1\u6709\u7528django\u7684\u7528\u6237\u8868\nclass Wxuser(models.Model):\n    #\u4e3b\u952e\n    id = models.AutoField(primary_key=True)\n    #\u7528\u6237\u5fae\u4fe1\u552f\u4e00\u6807\u8bc6\n    openid=models.CharField(max_length=255)\n    #\u59d3\u540d\n    name = models.CharField(max_length=50)\n    #\u5934\u50cf\n    avatar = models.CharField(max_length=200)\n    #\u8bed\u8a00\n    language = models.CharField(max_length=50)\n    #\u56fd\u5bb6\uff0c\u57ce\u5e02\uff0c\u7701\u4efd\n    province = models.CharField(max_length=50)\n    city = models.CharField(max_length=50)\n    country = models.CharField(max_length=50)\n    #\u6027\u522b\n    gender = models.CharField(max_length=50)\n    #creat_time=models.DateField(auto_now_add=True,default=timezone.now)\n\n #\u5546\u54c1\u5206\u7c7b\u8868\nclass Category(models.Model):\n    #\u5206\u7c7bid\n    cat_id=models.AutoField(primary_key=True)\n    #\u5206\u7c7b\u540d\u79f0\n    category_name=models.CharField(max_length=50)\n    #\u5206\u7c7b\u7684\u5e8f\u53f7\n    p_order=models.IntegerField(default=0)\n    #creat_time = models.DateField(auto_now_add=True,default=timezone.now)\n\n #\u5546\u54c1\u8868\nclass Products(models.Model):\n    #\u5546\u54c1id\n    product_id=models.AutoField(primary_key=True)\n    #\u8d27\u53f7\n    bn=models.CharField(max_length=200)\n    #\u6761\u7801\n    barcode=models.CharField(max_length=200)\n    #\u540d\u79f0\n    name=models.CharField(max_length=200)\n    #\u4ef7\u683c\n    price=models.DecimalField(max_digits=5, decimal_places=2)\n    #\u5355\u4f4d\u91cd\u91cf\n    weight=models.CharField(max_length=200)\n    #\u5355\u4f4d\n    unit=models.CharField(max_length=200)\n    #\u5546\u54c1\u5206\u7c7b\n    cat_id = models.ForeignKey(to=&quot;Category&quot;,to_field=&quot;cat_id&quot;, related_name=&quot;Products&quot;,db_constraint=False,on_delete=models.CASCADE)\n    #\u8be6\u60c5\u4ecb\u7ecd\n    intor = models.CharField(max_length=250)\n    #\u5546\u54c1\u7b80\u4ecb\n    brief = models.CharField(max_length=250)\n    #\u5546\u54c1\u56fe\u7247\n    image=models.OneToOneField(to=&#039;Images&#039;,to_field=&#039;image_id&#039;,on_delete=models.CASCADE,db_constraint=False,default=&quot;&quot;)\n    #\u9ed8\u8ba4\u56fe\u7247\n    image_default_id = models.CharField(max_length=250)\n    #creat_time = models.DateField(auto_now_add=True,default=timezone.now)\n\n#\u8ba2\u5355\u8868\nclass Order(models.Model):\n    #\u8ba2\u5355id\n    order_id=models.CharField(max_length=250,unique=True,primary_key=True)\n    #\u8ba2\u5355\u7684\u521b\u5efa\u65f6\u95f4\n    createtime=models.DateField(auto_now_add=True)\n    #\u8ba2\u5355\u72b6\u6001\n    status_choices = ((&quot;active&quot;, &#039;\u6d3b\u52a8\u8ba2\u5355&#039;), (&quot;dead&quot;, &#039;\u4f5c\u5e9f\u8ba2\u5355&#039;), (&quot;finish&quot;, &#039;\u5df2\u5b8c\u6210\u8ba2\u5355&#039;))\n    status = models.CharField(choices=status_choices, default=&quot;active&quot;,max_length=50)\n    #\u8ba2\u5355\u652f\u4ed8\u72b6\u6001\n    pay_status_choices=((0, &#039;\u672a\u4ed8\u6b3e&#039;), (1, &#039;\u5df2\u4ed8\u6b3e&#039;))\n    pay_status = models.SmallIntegerField(choices=pay_status_choices, default=0)\n    #\u8ba2\u5355\u652f\u4ed8\u91d1\u989d\n    payed=models.DecimalField(max_digits=5, decimal_places=2)\n    #\u8ba2\u5355\u5df2\u652f\u4ed8\u91d1\u989d\n    order_total=models.DecimalField(max_digits=5, decimal_places=2)\n    #\u8ba2\u5355\u53d1\u8d27\u72b6\u6001\n    ship_status_choices=((0, &#039;\u672a\u53d1\u8d27&#039;), (1, &#039;\u5df2\u53d1\u8d27&#039;),(2, &#039;\u90e8\u5206\u53d1\u8d27&#039;))\n    ship_status = models.SmallIntegerField(choices=ship_status_choices, default=0)\n    #\u652f\u4ed8\u65b9\u5f0f\n    pay_app =models.CharField(max_length=100)\n    #\u8d2d\u4e70\u8005\u4f1a\u5458id\n    member_id=models.IntegerField(default=0)\n    #\u5f00\u5956\u65b9\u5f0f\n    get_method=models.CharField(max_length=100)\n    #\u8ba2\u5355\u5305\u542b\u5546\u54c1\u6570\u91cf\n    quantity=models.IntegerField(default=0)\n    #\u8ba2\u5355\u795d\u798f\u8bed\n    memo=models.CharField(max_length=200,null=True)\n    #creat_time = models.DateTimeField(auto_now_add=True)\n\n#\u8ba2\u5355\u5b50\u8ba2\u5355\nclass Order_items(models.Model):\n    #item_id\n    item_id = models.AutoField(primary_key=True)\n    #\u8ba2\u5355id\n    order_id = models.ForeignKey(to=&quot;Order&quot;, to_field=&quot;order_id&quot;, related_name=&quot;Order_items&quot;, db_constraint=False,on_delete=models.CASCADE)\n    #\u5546\u54c1id\n    product_id= models.IntegerField(default=0)\n    #\u8d27\u53f7\n    bn = models.CharField(max_length=200)\n    #\u6761\u7801\n    barcode = models.CharField(max_length=200)\n    #\u5546\u54c1\u540d\u79f0\n    name = models.CharField(max_length=200)\n    #\u5546\u54c1\u56fe\u7247\n    image = models.OneToOneField(to=&#039;Images&#039;, to_field=&#039;image_id&#039;, on_delete=models.CASCADE,db_constraint=False,default=&quot;&quot;)\n    #\u5546\u54c1\u4ef7\u683c\n    price = models.DecimalField(max_digits=5, decimal_places=2)\n    #\u660e\u7ec6\u5546\u54c1\u603b\u989d(\u6210\u4ea4\u4ef7x\u6570\u91cf)\n    amount=models.DecimalField(max_digits=5, decimal_places=2)\n    #\u660e\u7ec6\u5546\u54c1\u8d2d\u4e70\u6570\u91cf\n    nums=models.IntegerField()\n    #\u660e\u7ec6\u5546\u54c1\u53d1\u8d27\u6570\u91cf\n    send_nums=models.IntegerField(null=True)\n    #\u5546\u54c1\u7b80\u4ecb\n    brief=models.CharField(max_length=250)\n    #\u83b7\u5f97\u8005\u4f1a\u5458\u7528\u6237\u540d \n    get_mermber_id=models.ForeignKey(to=&quot;Wxuser&quot;,to_field=&quot;id&quot;,related_name=&quot;Order_items_get&quot;,db_constraint=False,on_delete=models.CASCADE,null=True)\n    #\u8d2d\u4e70\u8005\u8005\u4f1a\u5458\u7528\u6237\u540d\n    buy_member_id = models.ForeignKey(to=&quot;Wxuser&quot;, to_field=&quot;id&quot;, related_name=&quot;Order_items_buy&quot;, db_constraint=False,on_delete=models.CASCADE,null=True)\n    #\u6536\u8d27\u4eba\n    consignee_name=models.CharField(max_length=200,null=True)\n    #\u6536\u8d27\u5730\u533a\n    consignee_area=models.CharField(max_length=200,null=True)\n    #\u6536\u8d27\u5730\u5740\n    consignee_address=models.CharField(max_length=200,null=True)\n    #\u6536\u8d27\u5730\u90ae\u7f16\n    consignee_zip=models.CharField(max_length=200,null=True)\n    #\u6536\u8d27\u4eba\u624b\u673a\n    consignee_mobile=models.CharField(max_length=200)\n    #\u662f\u5426\u586b\u5199\u8fc7\u6536\u8d27\u5730\u5740\n    status_choices = ((&quot;send&quot;, &#039;\u5df2\u586b\u5199&#039;), (&quot;nosend&quot;, &#039;\u672a\u586b\u5199&#039;))\n    status = models.CharField(choices=status_choices, default=&quot;nosend&quot;,max_length=50)\n    #creat_time = models.DateTimeField(auto_now_add=True)\n\nclass Images(models.Model):\n    #\u4e3b\u952e\n    image_id=models.CharField(max_length=200,primary_key=True)\n    #\u5b58\u50a8\u5f15\u64ce\n    storage=models.CharField(max_length=200)\n    #\u56fe\u7247\u540d\u79f0\n    image_name=models.CharField(max_length=250)\n    #\u539f\u59cb\u56fe\u552f\u4e00\u6807\u8bc6\n    ident=models.CharField(max_length=250)\n    #\u539f\u59cb\u56feURL\u5730\u5740\n    url=models.CharField(max_length=250)\n    #\u5927\u56fe\u552f\u4e00\u6807\u8bc6\n    l_ident=models.CharField(max_length=250)\n    #\u5927\u56feURL\u5730\u5740\n    l_url = models.CharField(max_length=250)\n    #\u4e2d\u56fe\u552f\u4e00\u6807\u8bc6\n    m_ident = models.CharField(max_length=250)\n    #\u4e2d\u56feURL\u5730\u5740\n    m_url = models.CharField(max_length=250)\n    #\u5c0f\u56fe\u552f\u4e00\u6807\u8bc6\n    s_ident = models.CharField(max_length=250)\n    #\u5c0f\u56feURL\u5730\u5740\n    s_url = models.CharField(max_length=250)\n    #\u8ff7\u4f60\u56fe\u552f\u4e00\u6807\u8bc6\n    xs_ident = models.CharField(max_length=250)\n    #\u8ff7\u4f60\u56feURL\u5730\u5740\n    xs_url = models.CharField(max_length=250)\n    #\u5bbd\u5ea6\n    width=models.CharField(max_length=250)\n    #\u9ad8\u5ea6\n    height = models.CharField(max_length=250)\n    status = models.CharField(default=&quot;false&quot;, max_length=50)\n#\u8ba2\u5355\u5f00\u5956\u65b9\u5f0f\u8868\nclass Order_methons(models.Model):\n    #\u8ba2\u5355id\n    order=models.OneToOneField(to=&#039;Order&#039;, to_field=&#039;order_id&#039;,  on_delete=models.CASCADE,db_constraint=False,default=&quot;&quot;)\n    #\u5f00\u5956\u65f6\u95f4\n    opentime=models.DateTimeField(null=True)\n    #\u5f00\u5956\u4eba\u6570\n    open_number=models.IntegerField(default=0)\n    #\u83b7\u5956\u4ebaid\n    get_member=models.OneToOneField(to=&#039;Wxuser&#039;,null=True, to_field=&#039;id&#039;, on_delete=models.CASCADE,db_constraint=False,default=&quot;&quot;)\n    #\u83b7\u5f97\u65b9\u6cd5\n    get_method=models.CharField(max_length=50,default=&quot;&quot;)\n    #\u5f00\u5956\u72b6\u6001\n    status_choices = ((&quot;begin&quot;, &#039;\u672a\u5f00\u5956&#039;), (&quot;read&quot;, &#039;\u51c6\u5907\u5f00\u5956&#039;),(&#039;finish&#039;,&quot;\u5df2\u7ecf\u5f00\u5956&quot;))\n    status = models.CharField(choices=status_choices, default=&quot;begin&quot;, max_length=50)\n    view_time=models.DateTimeField(null=True)\n #\u4f1a\u5458\u53c2\u4e0e\u8868\nclass Member_joins(models.Model):\n    id=models.AutoField(primary_key=True)\n    #\u8ba2\u5355id\n    order=models.OneToOneField(to=&#039;Order&#039;, to_field=&#039;order_id&#039;,  on_delete=models.CASCADE,db_constraint=False,default=&quot;&quot;)\n    #\u4f1a\u5458id\n    member=models.ForeignKey(to=&#039;Wxuser&#039;, to_field=&#039;id&#039;, on_delete=models.CASCADE,db_constraint=False,default=&quot;&quot;)\n    #\u53c2\u4e0e\u7684form_id\n    form_id=models.CharField(default=0,max_length=250)\n    #creat_time = models.DateTimeField(auto_now_add=True)\n\n#python3 manage.py makemigrations\n#python3 manage.py migrate\n#python3 manage.py runserver\n<\/code><\/pre>\n<h4>\u5e8f\u5217\u5316\u7ec4\u4ef6<\/h4>\n<p>MySer.MySer.py<\/p>\n<pre><code class=\"language-python\">from rest_framework import serializers\nfrom api import models\n\nclass ProductsSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Products\n        fields = &#039;__all__&#039;\n        depth = 1\n\nclass CategorySerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Category\n        fields = &#039;__all__&#039;\n\nclass OrderSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Order\n        fields=&quot;__all__&quot;\n\nclass OrdermethonsSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Order_methons\n        fields = &quot;__all__&quot;\n\nclass OrderitemsSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Order_items\n        fields=&quot;__all__&quot;\n        depth = 1\n\nclass WxuserSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Wxuser\n        fields = &quot;__all__&quot;\n\nclass MemberJoinSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Member_joins\n        fields = &quot;__all__&quot;\n\nclass MemberJoinallSerializer(serializers.ModelSerializer):\n    class Meta:\n        model = models.Member_joins\n        fields = &quot;__all__&quot;\n        depth=1<\/code><\/pre>\n<p>MySer.shareSer.py<\/p>\n<pre><code class=\"language-python\">from rest_framework import serializers\nfrom api import models\n\nclass ProductsSerializer1(serializers.ModelSerializer):\n    class Meta:\n        model = models.Products\n        fields = &#039;__all__&#039;\n        depth = 1\n\nclass CategorySerializer1(serializers.ModelSerializer):\n    class Meta:\n        model = models.Category\n        fields = &#039;__all__&#039;\n\nclass OrderSerializer1(serializers.ModelSerializer):\n    class Meta:\n        model = models.Order\n        fields=&quot;__all__&quot;\n\nclass ImageSerializer(serializers.ModelSerializer):\n    class Meta:\n        model =models.Images\n        fields=&quot;__all__&quot;\n\nclass OrdermethonsSerializer1(serializers.ModelSerializer):\n\n    order_id=serializers.CharField(source=&#039;order.order_id&#039;)\n    get_member_id= serializers.SerializerMethodField()\n    def get_get_member_id(self,obj):\n        if hasattr(obj.get_member, &quot;id&quot;):\n            return obj.get_member.id\n    class Meta:\n        model = models.Order_methons\n        fields = &quot;__all__&quot;\n\nclass OrderitemsSerializer1(serializers.ModelSerializer):\n\n    get_mermber_id_id = serializers.SerializerMethodField()\n    image_id=serializers.SerializerMethodField()\n    buy_member_id_id=serializers.SerializerMethodField()\n    number=serializers.SerializerMethodField()\n    def get_number(self,obj):\n        if hasattr(obj,&quot;number&quot;):\n            return obj.number\n    def get_get_mermber_id_id(self,obj):\n\n        if hasattr(obj.get_mermber_id, &quot;id&quot;):\n            return obj.get_mermber_id.id\n\n    def get_image_id(self,obj):\n        image_obj=ImageSerializer(obj.image, many=False)\n        return image_obj.data\n    def get_buy_member_id_id(self,obj):\n\n        return obj.buy_member_id.id\n    class Meta:\n        model = models.Order_items\n        fields=&quot;__all__&quot;\n\nclass WxuserSerializer1(serializers.ModelSerializer):\n    class Meta:\n        model = models.Wxuser\n        fields = &quot;__all__&quot;\n\nclass MemberJoinSerializer1(serializers.ModelSerializer):\n    order_id = serializers.CharField(source=&#039;order.order_id&#039;)\n    member_id = serializers.SerializerMethodField()\n    def get_member_id(self,obj):\n        return obj.member.id\n    class Meta:\n        model = models.Member_joins\n        fields = &quot;__all__&quot;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u9879\u76ee\u51c6\u5907 \u540e\u7aef\u6846\u67b6\uff1adjango-restframwork \u5c0f\u7a0b\u5e8f: \u521b\u5efa\u4e00\u4e2a\u5168\u65b0\u7684\u5c0f\u7a0b\u5e8f\uff0cappid\u7528\u4e0a\u9762\u6211 [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[307,309],"tags":[],"_links":{"self":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/3546"}],"collection":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3546"}],"version-history":[{"count":0,"href":"https:\/\/egonlin.com\/index.php?rest_route=\/wp\/v2\/posts\/3546\/revisions"}],"wp:attachment":[{"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3546"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3546"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/egonlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}