Size: a a a

Django [ru] #STAY HOME

2020 January 22

RT

Ruslan Tyutin in Django [ru] #STAY HOME
всем привет, нужна помощь. Есть две модели.
class Choice(models.Model):
   poll = models.ForeignKey(
       'Poll',
       on_delete=models.CASCADE,
       help_text="ссылка на голосование",
       related_name="choices",
   )
   choice = models.TextField()

class Poll(models.Model):
   objects = PollManager()
   question = models.TextField()

хочу получить примерно такой результат с помошью ОРМ
{ 
 "question": "Вопрос"
    "choices": [
       {
           "id": 957,
           "choice": "овтет2"
       },
       {
           "id": 958,
           "choice": "отве3"
       },
       {
           "id": 959,
           "choice": "овтет34"
       },
       {
           "id": 960,
           "choice": "авы234"
       },
       {
           "id": 961,
           "choice": "иваы342й"
       },
       {
           "id": 962,
           "choice": "екуц"
       }
   ],
}
источник

RT

Ruslan Tyutin in Django [ru] #STAY HOME
по сути две модели связаны между собой и мне нужно эту связь показать
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Ruslan Tyutin
всем привет, нужна помощь. Есть две модели.
class Choice(models.Model):
   poll = models.ForeignKey(
       'Poll',
       on_delete=models.CASCADE,
       help_text="ссылка на голосование",
       related_name="choices",
   )
   choice = models.TextField()

class Poll(models.Model):
   objects = PollManager()
   question = models.TextField()

хочу получить примерно такой результат с помошью ОРМ
{ 
 "question": "Вопрос"
    "choices": [
       {
           "id": 957,
           "choice": "овтет2"
       },
       {
           "id": 958,
           "choice": "отве3"
       },
       {
           "id": 959,
           "choice": "овтет34"
       },
       {
           "id": 960,
           "choice": "авы234"
       },
       {
           "id": 961,
           "choice": "иваы342й"
       },
       {
           "id": 962,
           "choice": "екуц"
       }
   ],
}
И что у тебя не получается?
источник

RT

Ruslan Tyutin in Django [ru] #STAY HOME
источник

RT

Ruslan Tyutin in Django [ru] #STAY HOME
почему-то получается как массив объектов
источник

Н

Никита in Django [ru] #STAY HOME
Ruslan Tyutin
почему-то получается как массив объектов
список из словарей
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Ruslan Tyutin
почему-то получается как массив объектов
потому что .filter возвращает массив объектов
источник

RT

Ruslan Tyutin in Django [ru] #STAY HOME
Никита
список из словарей
я из мира js пришел, сказал как смог
источник

RT

Ruslan Tyutin in Django [ru] #STAY HOME
так это DRF ставить надо, ради одной фичи
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Ruslan Tyutin
я из мира js пришел, сказал как смог
прям силами только orm у тебя не получится такой фокус. Твой вариант - взять объект Poll (poll=Poll.objects.get(idi=x)) и перебрать poll.choice_set список ответов.
источник

RT

Ruslan Tyutin in Django [ru] #STAY HOME
Предполагаю что через prefetch_related можно. Но похоже никак, придется два запроса написать и склеить результат
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Ruslan Tyutin
Предполагаю что через prefetch_related можно. Но похоже никак, придется два запроса написать и склеить результат
prefetch_related - это маленько про другое, он про оптимизацию N+1 запросов m2m полей
источник

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Mitai
знает кто хорошие книги по дрф, кроме книги Винсента?
А что за книга у Винсента?
источник

AS

Arseny Safoshin in Django [ru] #STAY HOME
[dict(question=y['question'], choices=list(y)) for x, y in groupby(Poll.objects.values('pk', 'question', 'choices_set__choice').order_by('pk'), key=itemgetter('pk'))]

плюс срезать ненужные ключи в чойсах
источник

LO

Loki Odinson in Django [ru] #STAY HOME
а там возможно сделать глобальный поиск, который идёт по нескольким таблицам и результат объединяется в одну таблицу(вью)
источник

IL

Ivan Lerner in Django [ru] #STAY HOME
Ребята, посоветуйте хороший сервис для рассылки писем с бека с API
источник

IL

Ivan Lerner in Django [ru] #STAY HOME
Email
источник

IL

Ivan Lerner in Django [ru] #STAY HOME
Цена - качество
источник

MI

Mickle Ivanov in Django [ru] #STAY HOME
Mailgun, mandril
источник

MI

Mickle Ivanov in Django [ru] #STAY HOME
В mailgun вроде 10 000 писем в месяц бесплатно. Но могу ошибаться
источник