1
私は以下の3つのモデルを持っています。私は次のSQLクエリから与えられることに期待だとして結果を取得したいDjangoは複数のテーブルを結合します
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)
(私は明確にするため、不要なフィールドを削除しました)。単に私が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
は、これは私が私がMRFDetailsおよび製品である値を取得できますか
gg = MRFStatus.objects.all().filter(Q(status__contains=0)).order_by('status','-modified_datetime').select_related()
を試してきたものです。
print gg.values()
は、MRFStatusテーブルに関連する値のみを示します。
例えば、二重のアンダースコア
__
を使用なぜあなたは値の後ORDER_BY入れなかった参照テーブルから値を取得するには? ggで使用したのと同じ文に 'gg.values( 'mrf_no__mrf_no'、 'mrf_no__product_id__name')'を使用するとどうなりますか? –それはとにかくおかげで働いた:) –