zoukankan      html  css  js  c++  java
  • drf自定义筛选

    1,表结构设计

    •   不会经常变化的值放在内存:choices形式,避免跨表性能低
        分表:如果表中列太多,大量内容可以选择水平分表
        表自关联
      
      

    2,一次增加两个表中的数据

    •     def post(self, request, *args, **kwargs):
              ser = serializer.ArticleListSerializer(data=request.data)
              ser_content = serializer.AddArticleSerializer(data=request.data)
              if ser.is_valid() and ser_content.is_valid():
                  article_obj = ser.save()
                  ser_content.save(article=article_obj)
                  return Response("添加成功")
              return Response("添加失败")
      

    3,筛选

    • 在文章列表时,添加筛选功能

    •     def get(self, request, *args, **kwargs):
              pk = kwargs.get("pk")
              if not pk:
                  # 筛选
                  condition = {}
                  category = request.query_params.get("category")
                  if category:
                      condition["category"] = category
                      queryset = models.Article.objects.filter(**condition).order_by("-date")
                  else:
                      queryset = models.Article.objects.all().order_by("-date")
                  # 分页
                  page_obj = PageNumberPagination()
                  result = page_obj.paginate_queryset(queryset, request, self)
                  ser = serializer.ArticleListSerializer(instance=result, many=True)
                  return Response(ser.data)
      
    希望你眼眸有星辰,心中有山海,从此以梦为马,不负韶华
  • 相关阅读:
    quartz CronExpression表达式
    nginx配置文件说明
    mysql的日期输出格式列出来
    linux配置定时备份mysql数据库
    Nginx 配置
    查看mysql 服务有哪些ip地址在连接。
    对HelloWorld进行探究
    SpringBoot热部署与启动速度优化
    SpringBoot 快速入门
    初始SpringBoot
  • 原文地址:https://www.cnblogs.com/daviddd/p/11918387.html
Copyright © 2011-2022 走看看