【发布时间】:2018-10-03 20:44:50
【问题描述】:
我有以下型号:
class Purchases(models.Model):
p_id = models.IntegerField(primary_key=True, default=0)
date = models.DateField(default=datetime.now)
def __str__(self):
return self.date.strftime('%Y-%m-%d')
class Meta:
verbose_name_plural = "Purchases"
class Purchased_Items(models.Model):
p_id = models.ForeignKey(Purchases, on_delete=models.CASCADE)
item = models.CharField(max_length=80)
size = models.IntegerField(max_length=2)
quantity = models.IntegerField(max_length=3)
price = models.IntegerField(max_length=4)
total = models.IntegerField(default=0)
def __str__(self):
return self.item
class Meta:
verbose_name_plural = "Purchased Items"
我正在尝试使用内部连接进行检索:
pur = Purchased_Items.objects.all().select_related()
但我没有得到所需的结果。基本上我想要以下sql:
select * from finance_purchases as fp
inner join finance_purchased_items pi
ON (fp.p_id = pi.p_id_id);
另一个问题是虽然Purchase_Items中的外键是p_id但是在sql表的列中是p_id_id!为什么?其背后的逻辑是什么?
谢谢
【问题讨论】:
-
你看过这篇文章吗? stackoverflow.com/questions/4125379/…
-
感谢您的快速回复!我已经阅读了这篇文章以及互联网上的所有其他文章,甚至是文档,但不知道我做错了什么,它没有从两个表中选择数据。它只从 Purchased_Items 中选择!我正在使用 Django 版本 2。