django【ORM】 通过外键字段找对应类

两个方法其实是一种,用哪个都行,看实例:

方法一:

从list_filter中的字符串,找到model对象的字段,然后得到这个外键对应的类

循环,把list_filter中对应的类所有对象

方法二:

两方法实际上是一样的,导入方式和使用方式不同:

方法一:

导入:from django.db.models.fields.related import ForeignKey,ManyToManyField

使用:field.rel.to

方法二:

导入:from django.db.models import ForeignKey,ManyToManyField

使用:field.rel.model

来自为知笔记(Wiz)

时间: 2024-10-06 19:27:54

django【ORM】 通过外键字段找对应类的相关文章

django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段

在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结构已经整体固定下来,并且有外键关联到了这个自定义的的主键,整个后台视图逻辑也已经封装完成,如果主表的主键发生改变,那么外键所在的表就会默认关联到新的主键上,那个后台视图的改动就会非常麻烦,这时就需要使用外键字段中的to_field属性来指定所关联的主表的某个字段,而不会影响到原先的逻辑 demo如下

Django ORM - 001 - 外键表查询主表信息

开始用Django做web开发,我想大家都会遇到同样的问题,那就是如何高效快速的查询需要的数据,MVC都很简单,但是ORM折腾起来就有些费时间,我准备好好研究下Django ORM,所以会有一个系列的Blog,欢迎大家讨论拍砖. 1. 如何快速的通过外键表获取主表的信息 演示Class from django.db import models import uuid class Employee(models.Model): employee_id = models.UUIDField(prim

django ORM的外键操作

外键约束示例 #models操作如下 class HostInfo(models.Model): servername = models.CharField(max_length=32) serverip = models.CharField(max_length=32) serverpassword = models.CharField(max_length=64) server_group = models.ForeignKey("GroupInfo",to_field="

django如何在 search_fields和list_filter 中包含外键字段

django如何在 search_fields和list_filter 中包含外键字段 我们知道在 admin.py 中定义 search_fields 可以控制在后台管理界面中能够搜索的字段. 但是,当 search_fields 包含外键字段时,此时进行搜索会报错: TypeError at /admin/hello/foo/ Related Field has invalid lookup: icontains 解决的办法是修改 search_fields 中的外键字段名称. 将 sear

使用sqlalchemy的ORM创建外键关联时报错

在学习使用sqlalchemy模块的时候踩了一个坑,分享一下. 埋下隐患 我先用下面的语句创建了一张学生信息表: > CREATE TABLE student ( -> id INT UNSIGNED AUTO_INCREMENT, -> name VARCHAR(20) NOT NULL, -> age TINYINT, -> PRIMARY KEY (id) -> ); 表里就3个字段:自增id(无符号的数字,自增id不会是负数,当然用无符号,感觉自己好专业),na

DRF4级联与外键字段

断关联表关系 外键字段属性 多表操作 断关联表关系 ''' 1.不会影响连表查询操作效率 2.会提升连表增删改操作效率 3.易于后期数据库表的重构 4.缺点:数据库本身设有连表检测,容易出现脏数据,需要通过严格的逻辑避免脏数据的参数(必要的时候管理脏数据) 举例: A依赖B,先插入A记录,该记录对应的B记录没产生,在没有关联的情况下,该操作可以实现,但是数据就是脏数据.接着再将B数据添加,脏数据就得到处理了.反过来先操作B后操作A,更满足逻辑思维,一样可以执行.通过逻辑将AB表进行 连表查询,不

序列化类外键字段的覆盖,十大接口序列化总结,视图家族

序列化类外键字段的覆盖 """ 1)在序列化类中自定义字段,名字与model类中属性名一致,就称之为覆盖操作 (覆盖的是属性的所有规则:extra_kwargs中指定的简易规则.model字段提供的默认规则.数据库唯一约束等哪些规则) 2)外键覆盖字段用PrimaryKeyRelatedField来实现,可以做到只读.只写.可读可写三种形式 只读:read_only=True 只写:queryset=关联表的queryset, write_only=True 可读可写:que

基于MVC+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作

我们在使用EasyUI的时候,很多情况下需要使用到表格控件datagrid,这个控件控件非常强大,使用起来很简洁,但是我在使用中,发现对于一个表里面的外键字段进行转义,并显示引用表的一些名称的操作,却显得比较难以实现,找了很多资料,基本上没有找到对应的解决方案.本文主要介绍我对这种外键字段转义的操作的实现方式,以便供大家参考了解. 1.DataGrid的初始化操作 在了解对内容的解析前,我们先来了解EasyUI里面Datagrid的初始化操作过程,然后逐步进行分析,寻求解决方式. 一般情况下,D

基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作

我们在使用EasyUI的时候,很多情况下需要使用到表格控件datagrid,这个控件控件非常强大,使用起来很简洁,但是我在使用中,发现对于一个表里面的外键字段进行转义,并显示引用表的一些名称的操作,却显得比较难以实现,找了很多资料,基本上没有找到对应的解决方案.本文主要介绍我对这种外键字段转义的操作的实现方式,以便供大家参考了解. 1.DataGrid的初始化操作 在了解对内容的解析前,我们先来了解EasyUI里面Datagrid的初始化操作过程,然后逐步进行分析,寻求解决方式. 一般情况下,D