множественный выбор в избранном Django Orm - PullRequest
0 голосов
/ 13 июня 2018

Мне нужно, чтобы эта сцена зашвырнула ORM в Django, но не знаю, как это сделать.

SELECT
    table_1.id,
    (SELECT COALESCE(SUM(qty_1), 0) FROM table_2 WHERE table_2.fk = table_1.id AND date BETWEEN start_date AND end_date),
    (SELECT COALESCE(SUM(qty_2), 0) FROM table_2 WHERE table_2.fk = table_1.id AND date BETWEEN start_date AND end_date),
    (SELECT COALESCE(SUM(qty_3), 0) FROM table_2 WHERE table_2.fk = table_1.id AND date BETWEEN start_date AND end_date)
FROM
    table_1

Любое предложение будет оценено.

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

1 Ответ

0 голосов
/ 13 июня 2018

Кто-то может показать прямой способ сделать это отношения «многие ко многим».Я обычно строю этот соединительный объект отдельно.Поэтому я бы сделал что-то вроде этого:

class Options(...):
    name = models.CharField(...)
    ...

class Question(...):
    question = models.CharField(...)
    type = ...
    ...

 class QuestionResponseRegistry(...):
    question = models.ForeignKey(Question)
    option = models.ForeignKey(Option)
    value = ...

Итак, в основном вы строите свой собственный объект соединения.С таким же успехом я могу указать на очевидное, прежде чем кто-то другой вызовет меня и вас.Мы оба в разной степени неправильно используем django.Вся мощь ORM в django состоит в том, чтобы абстрагироваться выше, чем в сопоставлении с различными операциями SQL.Я изложил способ связывания объекта соединения путем непосредственного создания объекта соединения, но при этом я в некотором смысле не просто создаю более определенную модель данных с отношениями «многие ко многим» или «один ко многим» .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...