Уведомления

Группа в Telegram: присоединиться

#1 Апрель 25, 2019 09:59:59

BlackShark
Зарегистрирован: 2019-04-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

запрос вида select max(asks.date) from asks where (asks.rubric = 2) в sqlalchemy

Приветствую!

Есть модель вроде этой (flask):

 class Asks(db.Model):
    __tablename__ = 'asks'
    id = db.Column(db.Integer, nullable=False, primary_key=True)
    date = db.Column(db.DateTime())
    .
    .
    rubric = db.Column(db.Integer, nullable=True, default=RUB_FORUM_GEN)
Не могу понять как взять запись с последней датой и определённой рубрикой??? Испробовал множество вариантов, вот последний из них:
 Asks.query.filter(Asks.rubric == rubric).func.max(Asks.date)
И попутный вопрос, если не затруднит, можете объяснить, при миграции БД через flask_migrate, пока не выставишь nullable=False для всех полей мигрируемых таблиц, миграция не выполняется, т.е. с ошибками, это нормально?

Офлайн

#2 Апрель 27, 2019 10:15:04

BlackShark
Зарегистрирован: 2019-04-23
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

запрос вида select max(asks.date) from asks where (asks.rubric = 2) в sqlalchemy

Отвечаю сам.
Код, приблизительно, будет следующий:

 q = db.session.query(db.func.max(Asks.date), Asks.user_id, Asks.title, Asks.date).filter(Asks.rubric == rubric)
Про миграцию не критично, но актуально)

Отредактировано BlackShark (Май 5, 2019 17:57:04)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version