Я хочу выбрать «Item.Item_code, Item.name, Stock.qty где Stock.userid = 2 и Item.item_code = Stock.Item_Code»
Вы можете выбрать этиконкретные поля только с использованием одного SQL, при условии, что вы начинаете с модели Stock
.Например,
q = Stock.objects.select_related('userid', 'item_code').filter(
userid__id = 2).values('item_code__item_code', 'item_code__name', 'qty')
Это поможет, если вы хотите ограничить данные, а затем количество запросов.Если вас это не волнует, выполните:
q = Stock.objects.filter(userid__id = 2)
for stock in q:
print stock.item_code.item_code
print stock.item_code.name
print stock.qty
. Это вернет набор запросов только с теми полями, которые вы выбрали, используя values
.Затем вы можете выполнить итерацию по нему.
PS : Re: ваши модели.
Class Stock(models.Model):
item_code = models.ForeignKey( Item )
userid = models.ForeignKey( User )
qty = models.IntegerField()
...
Рекомендуется использовать имя модели в нижнем регистре для FKотношения.Например, вы должны написать:
Class Stock(models.Model):
item = models.ForeignKey( Item ) # Changed
user = models.ForeignKey( User ) # Changed
qty = models.IntegerField()
...