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 — как получить единичный связанный объект"