1
class MyObject(Entity):
    name = Field(Unicode(256), default=u'default name', nullable=False)

    using_options(shortnames=True)
    using_mapper_options(save_on_init=False)

    def __init__(self):
        self.name = None  

この場合、MySQLを使用していますが、SQLiteに対してもチェックしたところ、同じ結果が得られました。を尊重しますが、完全にnullable無視します。defaultエラーメッセージは表示されず、テーブルは正常に作成されます。戻ってデフォルトを追加することもできますが、これは深刻な問題であり、可能であれば避けたいと思います。

他のフィールドタイプで試しましたが、それでも喜びはありません。

4

1 に答える 1

2

defaultSQLAlchemyのキーワード引数はPythonランタイムのデフォルト値用であり、INSERTステートメントに使用されます。PassiveDefault()データベースレベルのデフォルトが本当に必要な場合は、オブジェクトを位置引数として使用します。

于 2009-11-16T05:13:59.813 に答える