首页 > 其他 > 详细

Django通过字段获取关联模型

时间:2019-04-21 01:18:48      阅读:226      评论:0      收藏:0      [点我收藏+]
    #根据字段获取关联表
    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名字和模型名字


Django通过字段获取关联模型

原文:https://www.cnblogs.com/chengege/p/10743493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!