gpt4 book ai didi

python - Django 连接多个表

转载 作者:太空宇宙 更新时间:2023-11-03 14:44:11 25 4
gpt4 key购买 nike

我有以下三个型号。 (为了清楚起见,我删除了不必要的字段)

class Product(models.Model):
product_id = models.AutoField(primary_key=True)
name = models.CharField(max_length=255)

class MRFDetails(models.Model):
mrf_no = models.AutoField(primary_key=True)
customer_id = models.ForeignKey(CustomerDetails)
product_id = models.ForeignKey(Product)
machine_no = models.CharField(max_length=255)

class MRFStatus(models.Model):
mrf_no = models.ForeignKey(MRFDetails)
worker_id = models.CharField(max_length=255)

我想要获得预期从以下 SQL 查询中给出的结果。只是为了从 MRFStatus 获取值的名称表产品表。

SELECT 
`SandD_mrfstatus`.`mrf_no_id`,
`SandD_mrfdetails`.`mrf_no`,
`SandD_mrfdetails`.`product_id_id`,
`SandD_product`.`product_id`, `SandD_product`.`name`,
`SandD_product`.`end_product_name`
FROM `SandD_mrfstatus`
INNER JOIN `SandD_mrfdetails`
ON ( `SandD_mrfstatus`.`mrf_no_id` = `SandD_mrfdetails`.`mrf_no` )
INNER JOIN `SandD_product`
ON ( `SandD_mrfdetails`.`product_id_id` = `SandD_product`.`product_id` )
WHERE `SandD_mrfstatus`.`status` = 0
ORDER BY `SandD_mrfstatus`.`status` ASC,
`SandD_mrfstatus`.`modified_datetime` DESC

这是我尝试过的

gg = MRFStatus.objects.all().filter(Q(status__contains=0)).order_by('status','-modified_datetime').select_related()

如何获取 MRFDetails 和 Product 中的值。

print gg.values()

仅给出与 MRFStatus 表相关的值。

最佳答案

要从引用表中获取值,请使用双下划线 __,例如

MRFStatus.objects.filter(status=0).values(
'mrf_no__mrf_no', 'mrf_no__product_id__name', ''
).order_by('status', '-modified_datetime')

关于python - Django 连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com