本文介绍了Django中“ related_name”和“ related_query_name”属性之间的区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您能解释Django中Field对象的 related_name related_query_name 属性之间的区别吗?当我使用它们时,如何使用它们?谢谢!

Can you explain the difference between related_name and related_query_name attributes for the Field object in Django ? When I use them, How to use them? Thanks!

推荐答案

related_name 将是相关对象的属性,允许您向后转到带有外键的模型。例如,如果 ModelA 的字段类似于: model_b = ForeignKeyField(ModelB,related_name ='model_as'),则此字段将使您可以通过转到 model_b_instance访问与您的 ModelB 实例相关的 ModelA 实例.model_as.all()。请注意,对于外键,这通常用复数形式编写,因为外键是一对多关系,并且该等式的多面是声明了外键字段的模型。

related_name will be the attribute of the related object that allows you to go 'backwards' to the model with the foreign key on it. For example, if ModelA has a field like: model_b = ForeignKeyField(ModelB, related_name='model_as'), this would enable you to access the ModelA instances that are related to your ModelB instance by going model_b_instance.model_as.all(). Note that this is generally written with a plural for a Foreign Key, because a foreign key is a one to many relationship, and the many side of that equation is the model with the Foreign Key field declared on it.

文档中链接的进一步说明很有帮助。

The further explanation linked to in the docs is helpful. https://docs.djangoproject.com/en/dev/topics/db/queries/#backwards-related-objects

related_query_name 在Django查询集中。它使您可以过滤与外键相关字段的反向关系。继续我们的示例-在 Model A 上有一个字段,例如:
model_b = ForeignKeyField(ModelB,related_query_name ='model_a')将使您能够使用 model_a 作为查询集中的查找参数,例如: ModelB.objects.filter(model_a = whatever) related_query_name 使用单数形式更为常见。正如文档所述,不必同时指定 related_name related_query_name (或两者中的一个)。 Django有合理的默认值。

related_query_name is for use in Django querysets. It allows you to filter on the reverse relationship of a foreign key related field. To continue our example - having a field on Model A like:model_b = ForeignKeyField(ModelB, related_query_name='model_a') would enable you to use model_a as a lookup parameter in a queryset, like: ModelB.objects.filter(model_a=whatever). It is more common to use a singular form for the related_query_name. As the docs say, it isn't necessary to specify both (or either of) related_name and related_query_name. Django has sensible defaults.

这篇关于Django中“ related_name”和“ related_query_name”属性之间的区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-28 05:15