您能解释一下Django中Field对象的related_namerelated_query_name属性之间的区别吗?我用的时候,怎么用呢?谢谢!

推荐答案

related_name将是相关对象的属性,它允许您"倒退"到具有外键的模型.例如,如果ModelA有一个类似于:model_b = ForeignKeyField(ModelB, related_name='model_as')的字段,这将使您能够通过转到model_b_instance.model_as.all()来访问与ModelB实例相关的ModelA个实例.请注意,这通常用复数表示外键,因为外键是一对多关系,而等式的多个边是在其上声明了外键字段的模型.

文档中链接的进一步解释很有帮助.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 有明智的违约.

Django相关问答推荐

如何在Django模型mixin字段定义中引用模型名称?

Djnago admin中 Select 字段的自定义查询

我无法在Django模板中使用Get_Foo_Display

通过get_form_kwargs将请求传递给Django表单未能使表单访问self.request.user.

Django REST框架中如何从另一个视图调用API视图?

来自日历的 Django 动态 url

从一个组中获取所有用户 - Django

如何在 Django 模板视图中显示我的数据?

Django 应用程序似乎无法识别相关名称?

Django RESTful API - django-piston vs. django-tastypie

所有子元素的Django自递归外键过滤器查询

如何在终端中切换 Python 版本?

在 django 模板中遇到 user.is_authenticated 问题

用户组和权限

Django:使用render或render_to_response时添加响应头

Django模型字段按变量

从表单获取模型实例而不保存

Django:在还原(迁移)后try 访问数据库时权限被拒绝

1 个 django 应用程序中约有 20 个模型

django 如何知道已经运行了哪些迁移?