name=models.CharField('名称', max_length=32) classB(models.Model): a=models.ForeignKey(A, verbose_name='A类',related_name="test") name=models.CharField('称呼', max_length=16) 如果我们要查询一个A拥有哪些B的话 通过子表来查询主表 1 B.objects.filter(a=A_id).order_by('-created') 通...
在Django中,主要有两个参数用于指定这些相关名称:related_name和related_query_name。related_name参数related_name参数用于指定反向关系的名称。当你在一个模型中使用ForeignKey或OneToOneField等关系字段指向另一个模型时,Django会自动为你生成一个反向关系。这个反向关系的名称就是你在关系字段上指定的related_name。例如,...
Django学习笔记(17)ORM反向查询之related_name 先定义两个模型,一个是A,一个是B,是一对多的类型。 1classA(models.Model):2name= models.CharField('名称', max_length=32)34classB(models.Model):5a= models.ForeignKey(A, verbose_name='A类',related_name ="test")6name = models.CharField('称呼', ...
related_name=related_object.related_nameiftype(related_object) ==ManyToOneRel: to_field_value= related_object.field_name#那到的是反向查询关联字段(to_fields)的值 idlimit_choices_to = related_object.limit_choices_to#拿到的是limit_choices_to的值{'user_type_id': 2}ifmodel_name==mnandstr(relat...
在Django中,可以通过在模型类中定义related_name参数来实现反向查询。示例3:定义related_name参数在上面的示例中,我们使用了默认的related_name值profile_set。如果想要自定义反向查询的名称,可以在外键字段上定义related_name参数。例如: class Profile(models.Model): user = models.ForeignKey(User, on_delete=models...
django的model中related_name和related_query_name的区别(django的queryset) # ForeignKey的字段: related_name 反向操作时,使用的字段名,用于代替原反向查询时的'表名小写_set'。 related_query_name :反向查询操作时,使用的连接前缀,用于替换'表名小写'。
下面演示反向查询的两种方式使用related_name 和不使用related_name 使用related_name 则查询变为 主表对象.related_name的值.all() # 如果一对一直接不使用all: from platformapp.models import * app=AppleModel.objects.first() app.pickle <django.db.models.fields.related_descriptors.create_reverse_many_to...
使用related_name属性定义名称(related_name是关联对象反向引用描述符)。 具体修改代码如下: 代码语言:javascript 复制 classApple(models.Model):origin_level=models.ForeignKey(AppleLevel,related_name='orgin_level_appleset')new_level=models.ForeignKey(AppleLevel,related_name='new_level_appleset') ...
monitor.apple: Accessor for field ‘new_level' clashes with related field ‘AppleLevel.apple_set'. Add a related_name argument to the definition for ‘new_level'. 原因: 一个数据表同时两次外键引用另一个表,出现重名问题。 解决办法: 使用related_name属性定义名称(related_name是关联对象反向引用描述...
当一张子表里,多个foreignkey指向同一个主表,related_name必须设置。 为了解释这个问题,我们下面会详细说明,什么是前向查询?什么是反向查询 四、测试用数据库 为了演示查询功能,我们需要将上面建立好的models应用到数据库上。 1、新建数据库结构 不要忘记下面两条命令。