i have the following model:
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"
I am trying to retrieve using inner join:
pur = Purchased_Items.objects.all().select_related()
But i am not getting the required result. Basically I want the following sql:
select * from finance_purchases as fp
inner join finance_purchased_items pi
ON (fp.p_id = pi.p_id_id);
another question is although the foreign key in Purchased_Items is p_id but in the column in sql table is p_id_id! why? What is the logic behind it?
Thanks