python - Django中 'related_name'和 'related_query_name'属性之间的区别?

标签 python django django-models

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

最佳答案

related_name将是相关对象的属性,允许您“向后”返回到带有外键的模型。例如,如果 ModelA有如下字段:model_b = ForeignKeyField(ModelB, related_name='model_as') ,这将使您能够访问 ModelA与您的 ModelB 相关的实例实例通过 model_b_instance.model_as.all() .请注意,这通常用复数来表示外键,因为外键是一对多关系,而该等式的多方是声明了外键字段的模型。

文档中链接的进一步解释很有帮助。 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_namerelated_query_name . Django 有合理的默认值。

关于python - Django中 'related_name'和 'related_query_name'属性之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43132872/

相关文章:

python - 从 Tensorflow 转换 -> CoreML 3.0 用于插槽/意图检测

python - 我怎样才能让 2 个类引用同一个类的实例

python - 如何在django中生成临时文件然后销毁

Django 电子邮件附件

python - 管理员中的Django反向外键

django - Django 模型中的 SlugField() 与 CharField() 有什么区别

python - Qt DropActions : What is ActionMask for?

python、flask 和 jinja2 : passing parameters to url_for

django - 如何为 Django 管理操作创建按钮?

Django:做复杂注释和聚合的问题