繁体   English   中英

转换join SQL查询为django

[英]Convert join SQL query into django

我是 django 的新手,正在尝试使用它。

如何显示连接表中的选定字段。 例如:

我有两个模型,X 和 Y。我正在根据外键 model Y 合并这两个模型。

class X(models.Model):
    name = models.CharField()
    id = models.AutoField(primary_key=True)


class Y(models.Model):
    owner_user = models.ForeignKey(X, models.DO_NOTHING, 
    db_column='id')
    detail = models.CharField()

如何将此查询编写为 django 代码?

SELECT 名称、ID、Body_details 来自 X、Y WHERE X.id = Y.OwnerUserId;

您可以使用select_related

a = Y.objects.select_related('OwnerUserId').all()

for object in a:
    print(object.OwneruserId.name, object.OwneruserId.id, object.body)

您可以在此处使用select_related

结果 = Y.objects.select_related('owner_use')

加入后的所有工作将由这个 ORM 使用select_related自动完成。 您可以在此处查看与此类似的以前提出的问题。

需要使用ForeignKey字段的y_set related_name访问model的反向关系:

some_id = 1
instance = X.objects.get(id=some_id)
instance.y_set.all()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM