<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Django動態(tài)創(chuàng)建表模型,并使用drf

      序列化器

      from rest_framework import serializers
      
      class MySerializer(serializers.ModelSerializer):
          """
          序列化器
          """
      
          class Meta:
              model = None # 可以設(shè)置為None,動態(tài)生成之后,再通過反射來重新設(shè)置。
              fields = '__all__'
      
      

      視圖類

      from django.db import (
          models
      )
      
      from rest_framework.viewsets import (
          ModelViewSet
      )
      
      # 導(dǎo)入序列化器
      from .serializers import (
          MySerializer
      )
      
      
      class MyView(ModelViewSet):
          """
          表信息具體數(shù)據(jù)
          """
      
          queryset = None
          serializer_class = MySerializer
      
          # 過濾類
          filter_backends = [SearchFilter, OrderingFilter]
      
          def dispatch(self, request, *args, **kwargs):
      
              # 獲取表名,我是放在了路由的后面
              table_name = request.GET.get('table_name')
      
              if not table_name:
                  raise Exception('缺少必要參數(shù)')
      
              # 表模型字典
              models_dic = {
                  '__module__': 'myapp.models',
                  'Meta':type('Meat',(),{
                      'db_table':'{}'.format(table_name) # 指定數(shù)據(jù)庫的表名
                  })
              }
              
              # 動態(tài)獲取表都有哪些信息。我把這些表的字段和類型存在了數(shù)據(jù)庫。
              # 比如說我在表里面保存了 { field : name , type : CharField }
              table_info_queryset = TableInfo.objects.all()
              
              for _queryset in table_info_queryset:
                  models_dic.update({
                      _query.field: getattr(models, _query.type)(max_length=255)
                  })
              
              # 生成模型表
              orm_model = type('TempModel', (models.Model,), models_dic)
              
              # 獲取模型表數(shù)據(jù)
              orm_queryset = orm_model.objects.all()
      
              # 獲取序列化器的Meta 
              _meta = getattr(self.serializer_class, 'Meta')
      
              # 通過反射,給序列化器的Meta的model重新設(shè)置為我們臨時生成的model模型表
              setattr(_meta, 'model', orm_model)
      
              # 為當(dāng)前視圖重新設(shè)置我們臨時生成的model模型表
              setattr(self, 'queryset', orm_queryset)
      
              # 下面兩個是給搜索和排序重新設(shè)置
              setattr(self, 'search_fields', search_fields)
              setattr(self, 'ordering_fields', ordering_fields)
              
              return super().dispatch(request, *args, **kwargs)
      
      posted @ 2023-11-07 10:04  此用戶名不可用  閱讀(295)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲二区中文字幕在线| 99国产精品自在自在久久| 农村老熟妇乱子伦视频| 中文文字幕文字幕亚洲色| 日本一区二区精品色超碰| AV秘 无码一区二| 在线看av一区二区三区| 天天做日日做天天添天天欢公交车| 曲阜市| 娱乐| 双桥区| 国产一精品一av一免费爽爽| 国产成人精品亚洲日本片| 丰满的女邻居2| 国产精品亚洲中文字幕| 国产一区二区三区导航| 青青草无码免费一二三区| 小嫩批日出水无码视频免费| 成人综合婷婷国产精品久久蜜臀| 亚洲中文字幕无码久久精品1| 国产粉嫩一区二区三区av| 日韩毛片在线视频x| 久久精品国产一区二区三| 99在线小视频| 在线免费播放av观看| 国产精品18久久久久久麻辣 | 欧美国产日韩在线三区| 女人喷水高潮时的视频网站| 亚洲av二区三区在线| 成人午夜激情在线观看| 美女裸体黄网站18禁止免费下载| 国产精品日韩av在线播放| 久久综合亚洲鲁鲁九月天| 亚洲午夜久久久影院伊人| 亚洲精品视频免费| 精品国产大片中文字幕| 亚洲国产精品毛片av不卡在线| 永久无码天堂网小说区| 精品人妻系列无码天堂| 18禁裸乳无遮挡自慰免费动漫| 成人激情视频一区二区三区|