Size: a a a

Django [ru] #STAY HOME

2019 July 17

M

Mihail in Django [ru] #STAY HOME
Noors
Можно попробовать annotated, но values вытаскивать после annotated
если values идёт после annotate, то, на сколько я знаю, не произойдёт группировки. Т.е. имена книжек будут повторяться и связываться с одним только автором
источник

M

Mihail in Django [ru] #STAY HOME
не будет фильтрации по уникальным полям, чтобы к ним привязать другие объекты
источник

M

Mihail in Django [ru] #STAY HOME
Dan Tyan
ну прям так скорее всего нельзя
рили? :( Я думал, это распространённый функционал
источник

N

Noors in Django [ru] #STAY HOME
Slim Shady
Попробовал через prepopulated_fields, зарегистрировал кастомную ModelAdmin, на странице администрации ничего динамически не меняется, странно.

Модель наследуется от абстрактной модели, в которой title и slug определены, подозреваю проблема в этом
источник

SS

Slim Shady in Django [ru] #STAY HOME
Я уже прочитал, сейчас буду искать в чём ошибка - создам модель без наследования и отпишусь.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Mihail
рили? :( Я думал, это распространённый функционал
ну можно
получить список книг
и у каждого получить список авторов
источник

N

Noors in Django [ru] #STAY HOME
Mihail
подскажите, пожалуйста, можно ли как-то сгруппировать элементы, чтобы получить на выходе не результат выполнения какой-то функции, типо
Book.objects.values('name').annotate(Count('author__id'))

А чтобы на выходе были конкретные сгруппированные объекты, вроде
[{
  'name': 'first_name'
  'connected_to_book_authors': [obj1, obj2, obj3]
},
{
'name': 'second_book_name'
'connected_to_book_authors': [obj1, obj2, obj3]
}]
У вас авторы я так понял, m2m к книжкам?
источник

M

Mihail in Django [ru] #STAY HOME
Dan Tyan
ну можно
получить список книг
и у каждого получить список авторов
ну это несколько запросов. А в моём случае, если проводить аналогию, то  нужно каждого автора уведомить, что в каких-то из его книг произошли изменения. Причём все правки в одном письме.

А это получается на каждого автора по одному запросу.
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Mihail
ну это несколько запросов. А в моём случае, если проводить аналогию, то  нужно каждого автора уведомить, что в каких-то из его книг произошли изменения. Причём все правки в одном письме.

А это получается на каждого автора по одному запросу.
ты про запросы к базе?
или про вызовы моделей ?
источник

M

Mihail in Django [ru] #STAY HOME
Noors
У вас авторы я так понял, m2m к книжкам?
нее, ForeignKey
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Maxim Afanasev
Ну, вот и го тоже устарел. ))
хорошо хоть Haskell не устареет никогда)
источник

N

Noors in Django [ru] #STAY HOME
Mihail
подскажите, пожалуйста, можно ли как-то сгруппировать элементы, чтобы получить на выходе не результат выполнения какой-то функции, типо
Book.objects.values('name').annotate(Count('author__id'))

А чтобы на выходе были конкретные сгруппированные объекты, вроде
[{
  'name': 'first_name'
  'connected_to_book_authors': [obj1, obj2, obj3]
},
{
'name': 'second_book_name'
'connected_to_book_authors': [obj1, obj2, obj3]
}]
Тогда как вы хотите получить несколько авторов одной книги? Если я вас правильно понял
источник

M

Mihail in Django [ru] #STAY HOME
Noors
Тогда как вы хотите получить несколько авторов одной книги? Если я вас правильно понял
я хочу получить авторов, и привязать к ним список написанных ими книг

Само собой, что задача и название моделей у другие. Это я аналогию провожу.
источник

M

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

DT

Dan Tyan in Django [ru] #STAY HOME
Mihail
про запросы к базе
ну есть prefetch он кучу запросов сократит до двух
источник

N

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

Само собой, что задача и название моделей у другие. Это я аналогию провожу.
Authors.objects.values('full_name','books')?
источник

SM

Sergey Matveyev in Django [ru] #STAY HOME
Есть условная модель, с условными полям - field_a, field_b, field_c. Если я хочу её фильтрануть хочу, то я соответтсвенно делаю - result = Model.objects.filter(field_a='val1'), всё ок.
А если поле, по которому мне нужно передавать я получаю из переменной? Т.е. как сделать:
```var_1 = 'field_a'
result = Model.objects.filter(var_1='val1')```
?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Sergey Matveyev
Есть условная модель, с условными полям - field_a, field_b, field_c. Если я хочу её фильтрануть хочу, то я соответтсвенно делаю - result = Model.objects.filter(field_a='val1'), всё ок.
А если поле, по которому мне нужно передавать я получаю из переменной? Т.е. как сделать:
```var_1 = 'field_a'
result = Model.objects.filter(var_1='val1')```
?
используй распаковку кваргов ;)
источник

SM

Sergey Matveyev in Django [ru] #STAY HOME
*если обойтись без raw_sql
источник

SM

Sergey Matveyev in Django [ru] #STAY HOME
Dan Tyan
используй распаковку кваргов ;)
Это что-то из API QuerySet?
источник