Size: a a a

Django [ru] #STAY HOME

2019 September 08

R

Rusty_b0lt in Django [ru] #STAY HOME
так операторы < и > нельзя использовать в filter?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Нет
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ты передаешь имя поля и модификатор __lt, __lte, __gt, __gte
источник

R

Rusty_b0lt in Django [ru] #STAY HOME
я не могу найти где в документации про эти модификаторы рассказывается
источник

DT

Dan Tyan in Django [ru] #STAY HOME
источник

DT

Dan Tyan in Django [ru] #STAY HOME
источник

M

Mihail in Django [ru] #STAY HOME
подскажите, как сделать какие-то вычисления над каким-то из полей объектов QuerySet, ещё и при этом чтобы имя осталось тоже самое
источник

M

Mihail in Django [ru] #STAY HOME
через annotate выбрасывается ошибка The annotation 'field_name' conflicts with a field on the model.
источник

M

Mihail in Django [ru] #STAY HOME
ну и update конечно же тоже не подходит, т.к. сами значения полей объектов мне тоже не нужно заменять
источник

DT

Dan Tyan in Django [ru] #STAY HOME
а в чем проблема назвать по другому ?
источник

M

Mihail in Django [ru] #STAY HOME
Dan Tyan
а в чем проблема назвать по другому ?
У меня потом queryset выплёвывается в DRF, поэтому эстетика не позволяет.
источник

M

Mihail in Django [ru] #STAY HOME
а убирать старые значения полей по-моему уже избыточно
источник

DT

Dan Tyan in Django [ru] #STAY HOME
не проще переопределить в сериализаторе
источник

M

Mihail in Django [ru] #STAY HOME
Dan Tyan
не проще переопределить в сериализаторе
не совсем, потому что поля, которые я получаю образуются после группировки с помощью values + annotate
источник

M

Mihail in Django [ru] #STAY HOME
ну и над которыми хочу произвести вычисления
источник

M

Mihail in Django [ru] #STAY HOME
можно, конечно, в ручную поизвести операции над объектами через for .. in, но это будет около 3-4 строк. Я думал, может есть более элегантное решение с использованием F() сразу в запросе
источник

DT

Dan Tyan in Django [ru] #STAY HOME
я все еще не понял почему нельзя назвать по другому
источник

DT

Dan Tyan in Django [ru] #STAY HOME
в annotate указываешь (field_cnt=Count())


в сериализаторе

в свойстве

field = serializers.IntegerField(source='field_cnt')
источник

DT

Dan Tyan in Django [ru] #STAY HOME
тип поля сам выбираешь
источник

DT

Dan Tyan in Django [ru] #STAY HOME
в итоге

на выходе получаешь
такое же имя как и оригинальное поле
источник