Size: a a a

Django [ru] #STAY HOME

2020 February 07

DT

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

и уже полученый pk отправляешь в сериализаор
источник

HF

Harry Fox in Django [ru] #STAY HOME
Приветствую товарищи. Хочу задать такой вопрос:

В постгрес есть такая возможность добавить generated колонку в таблицу. В нее можно вставить функцию, чтобы она рассчитывалась из других полей. В джанге нативно такой функции нет (аннотацию не предлагать).

Собственно, смогу ли я добавить в модель какой-то таблицы такое поле, чтобы оно могло считывать информацию из "виртуальной" колонки?
источник

HF

Harry Fox in Django [ru] #STAY HOME
Может кто сталкивался с подобным. На самом деле мне нужно постоянное рассчитываемое поле вроде саннотированного
источник

HF

Harry Fox in Django [ru] #STAY HOME
И чтобы оно было доступно из related скоупа в кверисете через лукап, и в самой модели
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Harry Fox
И чтобы оно было доступно из related скоупа в кверисете через лукап, и в самой модели
не совсем понял

но по теории ты можешь создать view
и в джанго натравить модель на view и полноценно с ней работать
источник

HF

Harry Fox in Django [ru] #STAY HOME
Dan Tyan
не совсем понял

но по теории ты можешь создать view
и в джанго натравить модель на view и полноценно с ней работать
Я этот вариант тоже рассматриваю, и возможно буду им пользоваться если не получится мой вариант.

Он по сути тот же что и со view, только создаётся не целая таблица, а только виртуальное калькулируемое поле в существующей таблице. Было бы очень удобно и убыло бы тонны бойлерплейт кода, когда одно и то же поле нужно аннотировать из десятков различных скоупов
источник

HF

Harry Fox in Django [ru] #STAY HOME
Есть репозиторий на гитхабе, называется CalculatedField, вот это поле делает 100% что мне нужно, только толку, оно почти не работает.

Достаточно в модели указать этот CalculatedField(Expression) и готово
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Harry Fox
Есть репозиторий на гитхабе, называется CalculatedField, вот это поле делает 100% что мне нужно, только толку, оно почти не работает.

Достаточно в модели указать этот CalculatedField(Expression) и готово
так погоди в таблице же есть поле
источник

DT

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

DT

Dan Tyan in Django [ru] #STAY HOME
у него есть имя ?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
по тоерии к нему же можно просто обратится ?
источник

HF

Harry Fox in Django [ru] #STAY HOME
Dan Tyan
виртуальное но поле же
В реализации этого поля -- нет. Его в таблице нет. Оно не записывается в БД но аннотируется в любом кверисете любого скоупа
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Harry Fox
В реализации этого поля -- нет. Его в таблице нет. Оно не записывается в БД но аннотируется в любом кверисете любого скоупа
sql по такому поля как выполняется?
источник

HF

Harry Fox in Django [ru] #STAY HOME
Dan Tyan
sql по такому поля как выполняется?
Аннотируется просто. В коде Джанги выполняется resolve expression
источник

HF

Harry Fox in Django [ru] #STAY HOME
Как там в SQL не знаю но для этого репа есть подробная статья
источник

HF

Harry Fox in Django [ru] #STAY HOME
Щас поищу
источник

HF

Harry Fox in Django [ru] #STAY HOME
Dan Tyan
sql по такому поля как выполняется?
источник

HF

Harry Fox in Django [ru] #STAY HOME
Я когда его увидел чуть не завизжал от восторга
источник

HF

Harry Fox in Django [ru] #STAY HOME
Увы, это даже не пакет. Аггрегирующие функции в моем случае не работали
источник

HF

Harry Fox in Django [ru] #STAY HOME
https://schinckel.net/2018/11/12/django-computedfield()/ вот статья с подробным описанием
источник