Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2016 11:05:26

PavelIvanov
Зарегистрирован: 2015-09-21
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

SQLAlchemy склеивание записей

Доброго дня всем!
Столкнулся с проблемой с SQL алхимией: в базе PostgreSQL хранятся события, у некоторых из них есть правила повторения (ежедневно, еженедельно, etc). Первичный ключ в таблице ID. Правила повторения событий хранятся в формате rrule. При выборке из базы данных события “разворачиваются” с помощью функции unnest, то есть получается несколько элементов с pk=1 но разной датой. Само собой, алхимия видит одинаковый pk и “склеивает” эти записи.
Банальным решением проблемы было бы сделать комбинированный pk на ID и дату события, но в таблице даты нет, это поле появляется только после select'а. В orm это поле описано так:

date = column_property(func.unnest(func.get_occurrences(cast(rrule, RRule), cast(func.now(), TIMESTAMP))).label("date"))

Как можно решить эту проблему?

>>> Event.query.count()
182
>>> len(Event.query.all())
1

Отредактировано PavelIvanov (Июль 7, 2016 11:07:03)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version