[英]Django join tables
如何在视图中加入下表以从 BO 表中获取 DataUpload 表中所有 Dials 的地址。
class BO(models.Model):
id = models.AutoField(primary_key=True)
Dial = models.IntegerField()
Customer_Address = models.CharField(max_length=100, null=True, blank=True)
Wallet_Limit_profile = models.CharField(max_length=100, null=True, blank=True)
class DataUpload(models.Model):
Dial = models.IntegerField()
Serial = models.IntegerField(null=True)
Bag = models.IntegerField(null=True)
Today_Date = models.DateField(null=True)
user = models.CharField(max_length=100)
summary = models.ForeignKey(summary, on_delete=models.CASCADE)
summary_text = models.CharField(max_length=100, null=True, blank=True)
Name = models.CharField(max_length=100)
C**ustomer_Address = models.ForeignKey(BO, on_delete=models.CASCADE, null=True, blank=True)**
National_ID = models.IntegerField()
Customer_ID = models.IntegerField()
Status = models.CharField(max_length=100)
Registration_Date = models.DateTimeField(max_length=100)
Is_Documented = models.CharField(max_length=100, null=True)
Needed_Action = models.ForeignKey(needed_action, on_delete=models.CASCADE, null=True,
blank=True)
Hard_Copy_Type = models.ForeignKey(Hard_Copy_Type, on_delete=models.CASCADE, null=True,
blank=True)
Request_Status = models.ForeignKey(Request_Status, on_delete=models.CASCADE, null=True,
blank=True)
通过非关系字段加入时,您需要原始 sql 查询。
bo = BO.objects.raw(
‘’’select
yourapp_bo.*,
yourapp_dataupload.customer_address as address
from yourapp_bo
left join yourapp_dataupload using (dial);
‘’’,
params = {}
)
现在使用bo_instance.address
请注意,与普通查询集相比,原始查询几乎无法进一步更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.