Flaskでいくつかのモデルを作成するためにSQLAlchemyを使用しています。問題は、ほぼすべての列にnullable=False
が必要なため、このオプションをデフォルトとして設定する方法を探しています。列を作成するとき。確かに(Vimの演習として)手動で追加することはできますが、今日は気が進まないのです。参考までに、セットアップ(models.py
)は次のようになります。
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), nullable=False)
などなど。これを行う簡単な方法はありますか?
前もって感謝します。
それを設定するラッパーを作成するだけです
def NullColumn(*args,**kwargs):
kwargs["nullable"] = kwargs.get("nullable",True)
return db.Column(*args,**kwargs)
...
username = NullColumn(db.String(80))
コメントで推奨されているようにfunctools.partial
を使用する
from functools import partial
NullColumn = partial(Column,nullable=True)