zoukankan      html  css  js  c++  java
  • Django通过字段获取关联模型

        #根据字段获取关联表
        filter_field_obj=self.model._meta.get_field(filter_field)
        print('filter_field_obj:',filter_field_obj)
        print(type(filter_field_obj))
        if isinstance(filter_field_obj,related.RelatedField):
           print('related_model:',filter_field_obj.related_model.objects.all())
         
           #关联表的全部数据,只适用于一对多,多对多
        if isinstance(filter_field_obj,related.RelatedField):
           data_list=filter_field_obj.related_model.objects.all()
        else:
           #普通字段
           data_list=self.model.objects.values('pk',filter_field)


    model._meta.get_field(字段名称)可以获取这个模型关于字段的对象

    用type()对类型进行检验,发现 多对多  和  一对多 类型

        from django.db.models.fields.related import ForeignKey, ManyToManyField
        from django.db.models.fields import related


    实际上一对多和多对多都是related.RelatedField类型

    接下在可以使用上边获得的字段对象(如果是一对多或者多对多的话),可以通过obj.related_model.objects.all()获取关联模型的所有字段。如果是旧版本的Django,可以通过obj.rel.to来获取关联模型。

    另外可以通过模型获取app名字和模型名字


  • 相关阅读:
    nodejs 获取客户端 ip 地址
    如何使用 nvm-windows 管理 nodejs 版本
    redis 环境搭建
    利用 ssh 传输文件
    如何在 Centos7 中安装 gcc
    如何在 Centos7 中安装 nginx
    django迁移model到别的app中
    ssl生成证书
    pip安装mysql报错 ld: library not found for -lssl
    mac重置蓝牙模块
  • 原文地址:https://www.cnblogs.com/chengege/p/10743493.html
Copyright © 2011-2022 走看看