Найти - Пользователи
Полная версия: как сделать annotate
Начало » Django » как сделать annotate
1
eboome
есть кверисет:
n=TopupOperations.objects.filter(user_status=True).filter(activity=True).annotate(rate=F('amount') / F('sva__owner__country__currency_rate'))
но все время с ошибкой:
'ExpressionNode' object has no attribute 'lookup'
lead-in
Вы чего сделать-то хотите? Есть такое подозрение что вам нужно что-то другое, возможно select_related и extra.
FishHook
Покажите откуда вы импортируете F.
eboome
lead-in
Вы чего сделать-то хотите? Есть такое подозрение что вам нужно что-то другое, возможно select_related и extra.
Суть, есть вюшка ListView, в модели TopupOperations есть баланс(amount), мне нужно етот баланс сконвертировать в другую валюту, курс валюти я беру по связи ‘sva__owner__country__currency_rate’ етот результат мне нужно запихнуть в rate. Чтоб потом на темплейте rate был доступен в object_list

FishHook
Покажите откуда вы импортируете F.
from django.db.models import F
FishHook
А ошибка на каком этапе возникает? Если в шаблоне никак не использовать выборку, есть ошибка?
eboome
FishHook
А ошибка на каком этапе возникает? Если в шаблоне никак не использовать выборку, есть ошибка?
ошибка возникает, когда я пробую запустить етот кверисетю До шаблона дело не доходит(
та же сама ошибка когда использую aggregate:
MyModel.objects.filter(user_status=True).aggregate(rate=F('amount')/F('sva__currency_rate'), output_field=FloatField())
FishHook
eboome
ошибка возникает, когда я пробую запустить етот кверисетю До шаблона дело не доходит(
Что значит “запустить” кверисет? Вы его в шелле выполняете?
eboome
FishHook
Что значит “запустить” кверисет? Вы его в шелле выполняете?
В шелле пробовал - еррор. И метод класса def get_queryset возвращает тот же еррор. И да использую Postgres 9.4
eboome
Проблемму решил - етот кверисет работает з Джангой 1.8 и выше
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB