Выберите необработанные данные из нескольких таблиц - PullRequest
0 голосов
/ 30 октября 2019

Я хотел бы выбрать необработанные данные из нескольких таблиц.

например.

query = tempmodel.objects.raw('select empid as id,employee.empid,ccmaster.cscid from employee
                                left join ccmaster
                                on employee.cscid = ccmaster.cscid'   

Нужно ли создавать новую модель для tempmodel, которая включает в себя все обязательные поля?

Я уже пробовал с cursor.execute, но это только возвращаетзначение результата, а не с полем.

Как выбрать raw для нескольких таблиц?

Я уже проверил, что один => raw sql с несколькими таблицами , но, если честноЯ не понимаю ответ.

1 Ответ

1 голос
/ 30 октября 2019

raw () автоматически сопоставляет поля в запросе с полями модели. (https://docs.djangoproject.com/en/2.2/topics/db/sql/#mapping-query-fields-to-model-fields)

Я предлагаю вам создать модель, которая включает в себя все обязательные поля и установить для параметра managed Meta значение False (https://docs.djangoproject.com/en/2.2/ref/models/options/#managed)

т.е.

class TempModel(models.Model):
    field = models.ForeignKey(Question, on_delete=models.CASCADE)
    # ...

    class Meta:
        managed = False

(Необязательно) В дополнение к этому, возможно, вы могли бы использовать Custom Model Manager (https://docs.djangoproject.com/en/2.2/topics/db/managers/#adding-extra-manager-methods)

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