当前位置: 首页 > news >正文

在哪个网站可以学做衣服会员管理系统多少钱

在哪个网站可以学做衣服,会员管理系统多少钱,公司视频广告拍摄,域通联达网站文章目录 前言一、问题二、解决 前言 最近在复习django的时候#xff0c;发现了一个有趣的问题#xff0c;解决了之后特意记录下来#xff0c;以供以后参考。 一、问题 相信大家使用django的时候#xff0c;被其DRF的强大功能所折服#xff0c;因为它能通过简单的代码就… 文章目录 前言一、问题二、解决 前言 最近在复习django的时候发现了一个有趣的问题解决了之后特意记录下来以供以后参考。 一、问题 相信大家使用django的时候被其DRF的强大功能所折服因为它能通过简单的代码就能帮助我们实现增删改查等最简单的操作。我的demo代码如下 模型类代码models.py from django.db import modelsclass StudentInfo(models.Model):name models.CharField(max_length10, verbose_name姓名)sex models.CharField(max_length1, verbose_name性别)from_class models.ForeignKey(ClassInfo, on_deletemodels.CASCADE)序列化器代码serializers.py from rest_framework import serializers from demo import modelsclass StudentInfoSerializer(serializers.ModelSerializer):class Meta:model models.StudentInfofields __all__ 视图代码views.py from rest_framework.viewsets import ModelViewSet from .models import StudentInfo from .serializers import StudentInfoSerializerclass DemoView(ModelViewSet):queryset StudentInfo.objects.all()serializer_class StudentInfoSerializer路由代码urls.py from rest_framework.routers import SimpleRouter, DefaultRouter from .views import DemoView urlpatterns []# demo_route SimpleRouter() demo_route DefaultRouter()demo_route.register(demo, DemoView, basenamedemo)urlpatterns demo_route.urls最后在项目的主路由里面添加路径即可(需要在settings.py里面注册app) from django.contrib import admin from django.urls import path, includeurlpatterns [path(admin/, admin.site.urls),path(user/, include(user.urls)),path(, include(demo.urls)) ]效果 但是这样会出现一个问题就是无法控制序列化结果显示的字段。例如在同一个项目中可能会出现多个场景一个场景只需要用户的name和sex字段一个场景只需要用户的name字段一个场景则需要用户的全部字段按照以上方法就需要设置三个序列化器了显然不符合实际应用。那么有没有办法可以兼顾便捷和灵活呢 二、解决 解决方法很简单重写序列化器的__init__()方法即可 serializers.py # 动态修改fileds字段 class StudentInfoSerializer(serializers.ModelSerializer):此处的fields字段是用来替换上面Serializer内部Meta类中指定的fields属性值def __init__(self, *args, **kwargs):# 在super执行之前# 将传递的fields中的字段从kwargs取出并剔除避免其传递给基类ModelSerializer# 注意此处fields中在默认self.fields属性中不存在的字段将无法被序列化 也就是fields中的字段应该是self.fields的子集fields kwargs.pop(fields, None)super(StudentInfoSerializer, self).__init__(*args, **kwargs)if fields is not None:# 从默认self.fields属性中剔除非fields中指定的字段(两个集合相减会提出多余的元素)allowed set(fields)existing set(self.fields.keys())for field_name in existing - allowed:self.fields.pop(field_name)class Meta:model models.StudentInfofields __all__以上代码的原理也很简单首先获取传入的fields参数(即你想要的字段)然后使用序列化器原有的字段减去你想要的字段就获取了多余的字段最后循环遍历多余的字段将它们从原有的字段中一个一个剔除。 为了更好的展示结果我这里自定义了三个路径 views.py from django.shortcuts import render# Create your views here. from rest_framework.decorators import action from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet from .models import StudentInfo from .serializers import StudentInfoSerializerclass DemoView(ModelViewSet):queryset StudentInfo.objects.all()serializer_class StudentInfoSerializeraction(url_pathall_fields, methods[GET], detailFalse)def all_fields(self, request):user_data StudentInfo.objects.all()serializer StudentInfoSerializer(instanceuser_data, manyTrue)return Response(serializer.data)action(url_pathname_sex, methods[GET], detailFalse)def name_sex(self, request):user_data StudentInfo.objects.all()serializer StudentInfoSerializer(instanceuser_data, fields(name, sex), manyTrue)return Response(serializer.data)action(url_pathname_fromclass, methods[GET], detailFalse)def name_fromclass(self, request):user_data StudentInfo.objects.all()serializer StudentInfoSerializer(instanceuser_data, fields(name, from_class), manyTrue)return Response(serializer.data)效果如下 可以看出根据传入的fields的不同返回不同的结果。
http://www.pierceye.com/news/583038/

相关文章:

  • 适合html初学者做的网站中卫网站推广软件
  • 一个vps主机放两个网站 速度怎么做发卡网站
  • 海米云网站建设网站开发 去哪里找页面
  • 天津做网站优化的公司新手学做网站优化
  • 万网怎么上传网站wordpress google字体 360
  • 为什么建设的网站有时候访问慢6紫金优化网站制作
  • 如何在公司系统建网站广州短视频seo哪家好
  • 电气网站开发福安网站定制
  • 推荐一下做图文的网站html简单的个人网页代码
  • 网页新建站点网站建设缺陷
  • 移动端网站推广怎么申请pc网站域名
  • 外国男男做暧暧视频网站二级建造师考试试题
  • 普通网站建设是什么wordpress主题显示不
  • 朔州网站建设全球速卖通是什么平台
  • wordpress外贸网站好用的模板下载网站开发就业趋势
  • 长春模板建站代理网站开发嘉比格网络
  • 网站建设预算企业网站的公司和产品信息的介绍与网络营销关系
  • 网站开发的学习电子商务网站建设公
  • 网站的功能需求分析c语言网页编辑器
  • 网站投资多少钱制作做的网站如何上传网上
  • 沈阳自助建站模板网站建设想法
  • 湖南岳阳网站建设公司黄页顺企网怎样不让网站被收录
  • 有没有专门做翻译的网站安徽建设工程信息网招标公告
  • 保险咨询网站留电话中国十大网络公司排行榜
  • 领手工在家做的网站2019网页设计与实现论文
  • 兰州微信信息平台网站建设绍兴本地网站建设
  • 关于旅游网站策划书千锋前端培训多少钱
  • 温州网站建设结构做代练网站能备案
  • 零基础学习做网站第三方装修评估公司
  • 基础微网站开发动态网站彩票投注员做啥的