Size: a a a

2020 October 14

K

Kristina in Python Flask
Tishka17
Попробуй session.merge вместо add
sqlalchemy.exc.InvalidRequestError: Instance '<Device at 0x10808f3d0>' is not persistent within this Session
источник

T

Tishka17 in Python Flask
Ок
источник

K

Kristina in Python Flask
я вот смотрю разные примеры кода с real-world-app, там везде проверка вначале на наличие такого в базе:

"""
Create new user.
"""
user = crud.user.get_by_email(db, email=user_in.email)
if user:
   raise HTTPException(
       status_code=400,
       detail="The user with this username already exists in the system.",
   )
user = crud.user.create(db, obj_in=user_in)
return user
источник

K

Kristina in Python Flask
наверное, стоит все-таки проверять вначале
источник

V

Vladi in Python Flask
Но проверка такая себе на самом деле, ибо где-то после get может уже сработать create, в случае двух одновременных реквестов
источник

K

Kristina in Python Flask
согласна
источник

T

Tishka17 in Python Flask
Kristina
я вот смотрю разные примеры кода с real-world-app, там везде проверка вначале на наличие такого в базе:

"""
Create new user.
"""
user = crud.user.get_by_email(db, email=user_in.email)
if user:
   raise HTTPException(
       status_code=400,
       detail="The user with this username already exists in the system.",
   )
user = crud.user.create(db, obj_in=user_in)
return user
Проверка помогает в 99% ситуаций выдать юзеру красивый код ошибки
источник

D

Dmitriy in Python Flask
Гайз, еще вопрос:
есть несколько моделей, релейшны которых образуют иерархическую структуру (если можно так выразиться).
Как можно сделать join между моделями/таблицами, располагающимися в произвольных узлах иерархии?
источник

D

Dmitriy in Python Flask
для простоты: каждом узле всего по 1 ветке
источник

D

Dmitriy in Python Flask
сорри, если выражаюсь некорректно. не знаю, с чем сравнить
источник

ЛЛ

Леонид Ленков... in Python Flask
Dmitriy
Гайз, еще вопрос:
есть несколько моделей, релейшны которых образуют иерархическую структуру (если можно так выразиться).
Как можно сделать join между моделями/таблицами, располагающимися в произвольных узлах иерархии?
У тебя строки таблицы ссылаются на эту же таблицу или на другую?
источник

K

Kristina in Python Flask
Tishka17
Проверка помогает в 99% ситуаций выдать юзеру красивый код ошибки
я в ступоре в таком случае 🙁
источник

D

Dmitriy in Python Flask
Леонид Ленков
У тебя строки таблицы ссылаются на эту же таблицу или на другую?
у каждой вложенной таблицы, есть свой предок, и свои потомки
источник

ЛЛ

Леонид Ленков... in Python Flask
Dmitriy
у каждой вложенной таблицы, есть свой предок, и свои потомки
Что значит вложенные таблицы? У таблиц нет вложенностей
источник

D

Dmitriy in Python Flask
Леонид Ленков
Что значит вложенные таблицы? У таблиц нет вложенностей
да, понимаю, я образно
источник

ЛЛ

Леонид Ленков... in Python Flask
Если это что-то типо иерархии командир-подчинённый, то это одна таблица строки которой ссылаются на эту же таблицу. Ты это имеешь в виду?
источник

D

Dmitriy in Python Flask
Леонид Ленков
Если это что-то типо иерархии командир-подчинённый, то это одна таблица строки которой ссылаются на эту же таблицу. Ты это имеешь в виду?
одна из строк точно ссылается, но не строки
источник

ЛЛ

Леонид Ленков... in Python Flask
Dmitriy
одна из строк точно ссылается, но не строки
Так и что ты в итоге хочешь? Создать структуру объектов с иерархическим деревом ?
источник

D

Dmitriy in Python Flask
Леонид Ленков
Так и что ты в итоге хочешь? Создать структуру объектов с иерархическим деревом ?
в итоге я хочу понять, как делать объединение между произольными таблицами в этой иерархии.
сейчас я использую самописную функцию вычисления маршута объединений, но выглядит ужасно.
источник

D

Dmitriy in Python Flask
надо будет в sqlalchemy inspect покопаться
источник