Вот соответствующий менеджер, который я написал:
class PortfolioItemManager(models.Manager):
use_for_related_fields = True
def extended(self):
return self.extra(select = {'current_price':'current_price', 'current_value':'current_price*quantity', 'gain':'current_price*quantity - cost'},
tables = ['pm_core_contract', ],
where = ['pm_core_contract.id = pm_core_portfolioitem.contract_id', ]
)
Вот результаты, которые меня озадачивают:
In [10]: PortfolioItem.objects.extended()
Out[10]: []
In [11]: PortfolioItem.objects.extended().count()
Out[11]: 402
Результат от count () правильный. Что мне здесь не хватает?
РЕДАКТИРОВАТЬ: Сгенерированный SQL является правильным и может быть выполнен непосредственно на БД.
EDIT2: Проблема связана с двумя последними аргументами выбора, которые содержат арифметические операции.