Уведомления

Группа в Telegram: @pythonsu

#1 Июль 15, 2019 11:01:38

SergeyChmutov
Зарегистрирован: 2017-08-04
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Удаление полей с PK в SQLAlchemy

Добрый день, форумчане!
Работаю с алхимией, но в ней не особо шарю, поэтому и возникла следующая проблема:
У меня есть два проекта пирамиды, у каждого проекта своя БД, но она одинаковая для обеих проектов. В проекте 1 я изменияю некоторые поля в БД, и передаю все поля для изменений в другой проект POST запросом (чтобы не вычислять дельту и искать какие поля я заменяю. JSON может быть довольно таки большим). На проект 2, я делаю запрос по такой же записи (содержит 5 таблиц) из БД. И заменяю поля, на те который получил в запросе. Но т.к. я получаю в проекте 2 записи и поля PK. Поэтому измененные данные в запросе я не могу сделать flush в БД.
Подскажите, можно ли как-то удалять поля из запроса, чтобы алхимия думала что они не изменяются и я просто хочу обновить другие поля.
На сколько я понимаю даже после запроса алхимия даже неизменненые поля считает уже полем с изменением.
P.S.: Сделать запрос без PK не получается, получается на sql достаточно сложный запрос и похоже что база его не вывозит.

Тело запроса, который я делаю:

 current_test = session.query(Test) \
            .join(Test.testmu, isouter=True) \
            .join(Test.typetest, isouter=True) \
            .join(Test.termtest, isouter=True) \
            .join(Test.teststatus, isouter=True) \
            .join(Test.reasondisparity, isouter=True) \
            .join(Test.agreed_test, isouter=True) \
            .join(Intervalviolation, Testmu.idtestmu == Intervalviolation.idtestmu, isouter=True) \
            .join(Elementmu, Testmu.idtestmu == Elementmu.idtestmu, isouter=True) \
            .join(Elementmu.criterionmu, isouter=True) \
            .filter(Test.idtest == id_test).one()

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version