Size: a a a

Django [ru] #STAY HOME

2019 July 03

S

Spirit💎 in Django [ru] #STAY HOME
но все же это не шибко решение, согласись
источник

S

Spirit💎 in Django [ru] #STAY HOME
где-то собака зарыта
источник

DT

Dan Tyan in Django [ru] #STAY HOME
почему отличное решение
источник

V

Valera in Django [ru] #STAY HOME
Скажите, у query есть метод values, но можно ли как-то его применить к "одиночному объекту"?
Я имею в виду что-то типо такого Model.objects.get().values()
источник

S

Spirit💎 in Django [ru] #STAY HOME
ты же гет берешь
источник

ЕJ

Евгений Jen in Django [ru] #STAY HOME
Всем привет, нужна помощь с ORM
есть 2е таблички   Карточка <=(fk)= Статус
[Card]
| id | type |
|  1 |  red  |
[Status]
| id | card_id | value       |    date       |
| 1  |    1          | assigned | 19-02-03 |
| 2  |    1          | disabled  | 19-02-04 |
—————
в реузльтате нужно получить все карточки и к каждой последний статус
[Card](  1,  red )  +  [Status]( 2,   1 ,  disabled,  19-02-04)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Евгений Jen
Всем привет, нужна помощь с ORM
есть 2е таблички   Карточка <=(fk)= Статус
[Card]
| id | type |
|  1 |  red  |
[Status]
| id | card_id | value       |    date       |
| 1  |    1          | assigned | 19-02-03 |
| 2  |    1          | disabled  | 19-02-04 |
—————
в реузльтате нужно получить все карточки и к каждой последний статус
[Card](  1,  red )  +  [Status]( 2,   1 ,  disabled,  19-02-04)
по теории через anotate и subquery
источник

ЕJ

Евгений Jen in Django [ru] #STAY HOME
Dan Tyan
по теории через anotate и subquery
ок спасибо сейчас попробую
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Valera
Скажите, у query есть метод values, но можно ли как-то его применить к "одиночному объекту"?
Я имею в виду что-то типо такого Model.objects.get().values()
а что не работает ? уже пробовал ?
источник

V

Valera in Django [ru] #STAY HOME
Dan Tyan
а что не работает ? уже пробовал ?
Ну если я делаю Model.objects.filter(id=...).values() мне выдается список со всеми данными конкртеного объекта, id которого я указал
Но мне нужен метод наподобие values() но для Model.objects.get()
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Евгений Jen
ок спасибо сейчас попробую
будет что то вроде

.annotate(status=Subquery(Status.objects.filter(card_id=OuterRef('pk')).values('value').order_by('-pk').first())
источник

V

Valera in Django [ru] #STAY HOME
Вообще мне требуется выяснить, какое было изменено в модели
Мне подсказали решение на сигналах, но делать такую проверку для каждого поля это капец..
Я думал взять что-то типо как values() и сравнить два словаря
Если есть разница, то поле было изменено
Но все-таки не оч получается так сделать..
источник

V

Valera in Django [ru] #STAY HOME
Просто previous получается для него взять values(), а вот для instance нет
И я думаю как сделать аналог для него
источник

V

Valera in Django [ru] #STAY HOME
Мб мое решение так себе
Мб есть получше?)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Valera
Вообще мне требуется выяснить, какое было изменено в модели
Мне подсказали решение на сигналах, но делать такую проверку для каждого поля это капец..
Я думал взять что-то типо как values() и сравнить два словаря
Если есть разница, то поле было изменено
Но все-таки не оч получается так сделать..
а как у previous сделал ?


я бы наверно сделал так
сформировал список полей, либо руками либо через ._meta.get_fields()

и потом

for field in fields:
  if getattr(instance, filed) == getattr(prev, field):
источник

B

Buckwheat Cat in Django [ru] #STAY HOME
Народ, привет! что таке flat menu и main menu в wagtailmenus?
источник

V

Valera in Django [ru] #STAY HOME
Dan Tyan
а как у previous сделал ?


я бы наверно сделал так
сформировал список полей, либо руками либо через ._meta.get_fields()

и потом

for field in fields:
  if getattr(instance, filed) == getattr(prev, field):
ой, там опечатка
Там должно было быть
Course.objects.filter(id=..).values()
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Valera
ой, там опечатка
Там должно было быть
Course.objects.filter(id=..).values()
ну попробуй мой вариант
источник

V

Valera in Django [ru] #STAY HOME
Dan Tyan
ну попробуй мой вариант
Да, сейчас пробую, отпишусь
источник

V

Valera in Django [ru] #STAY HOME
Dan Tyan
ну попробуй мой вариант
Да, работает) забыл свовсем про это
Спасибо
источник