SQLAlchemy — как получить единичный связанный объект

Admin SQLAlchemy

Получаем сериализированное свойство в связанном объекте.

Как получить единичный объект

Для этого нужна функция:

    def __str__(self):
        return self.name_ru

Весь пример:

class Category(db.Model, RoleMixin):
    __tablename__ = 'categories'
    id = db.Column(db.Integer, primary_key=True, unique=True)
    cat_global_id = db.Column(db.Integer, db.ForeignKey('categories_global.id'))

    parent_global_name = db.relationship('CategoryGlobal', backref=db.backref('categories'))

    @property
    def serialize_for_categories(self):
        return {
            'id': self.id,
            'cat_global_name': self.parent_global_name.__str__(),
        }


class CategoryGlobal(db.Model, RoleMixin):
    __tablename__ = 'categories_global'
    id = db.Column(db.Integer, primary_key=True, unique=True)
    name_ru = db.Column(db.String(255))

    def __str__(self):
        return self.name_ru

Как получить массив из ID

В классе моделей:

    @property
    def serialize_time(self):
        return {
            self.time.strftime('%d'),
        }

В файле, где нужно получить данные

query = db.session.query(Task).filter_by(user_id=user_id)
query = [x.serialize_time for x in query]


# Переделываем множество [{'15'}, {'4'}] в список id -> [15, 4]
query = [int(list(x)[0]) for x in query]

# Отсортируем цифры по увеличению
query.sort(key=lambda x: x)

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"SQLAlchemy — как получить единичный связанный объект"