SQLAlchemy/Python 3 (значение столбца по умолчанию)

У меня есть модель SQLAlchemy, которая (упрощенно) выглядит так:

class User(db.Model):
    created = db.Column(db.DateTime(), nullable=False, default=datetime.datetime.utcnow, onupdate=datetime.datetime.utcnow)

Это отлично работало с Python 2.7, но теперь, когда я обновился до Python 3.4.0, я получаю эту ошибку при попытке вставить что-то в базу данных:

sqlalchemy.exc.StatementError: utcnow() takes no arguments (1 given) (original cause: TypeError: utcnow() takes no arguments (1 given))

Есть идеи? Заранее спасибо.


person user3362454    schedule 18.03.2014    source источник


Ответы (2)


Функции default и onupdate могут принимать необязательный аргумент context. См. здесь. Я не уверен, как sqlalchemy определяет, следует ли передать это, но, возможно, что-то в 3.4 мешает обнаружению. Вы можете сообщить об ошибке.

person davidism    schedule 18.03.2014

У SQLAlchemy есть известная проблема, связанная с этим, что можно увидеть в этом разделе. примечаний к выпуску 0.9.4

person mitgr81    schedule 25.03.2014