Float型の1時間ごとの列を含むテーブルを作成したいとします。 は、どのように私はこの冗長な構文を取り除くん:Postgresを使用したSqlAlchemyモデルの動的生成フィールド
from app import db
class HourlySchedule(db.Model):
id = db.Column(
db.Integer,
primary_key=True
)
h0 = db.Column(db.Float, nullable=True)
h1 = db.Column(db.Float, nullable=True)
h2 = db.Column(db.Float, nullable=True)
h3 = db.Column(db.Float, nullable=True)
h4 = db.Column(db.Float, nullable=True)
h5 = db.Column(db.Float, nullable=True)
h6 = db.Column(db.Float, nullable=True)
h7 = db.Column(db.Float, nullable=True)
h8 = db.Column(db.Float, nullable=True)
h9 = db.Column(db.Float, nullable=True)
h10 = db.Column(db.Float, nullable=True)
h11 = db.Column(db.Float, nullable=True)
h12 = db.Column(db.Float, nullable=True)
h13 = db.Column(db.Float, nullable=True)
h14 = db.Column(db.Float, nullable=True)
h15 = db.Column(db.Float, nullable=True)
h16 = db.Column(db.Float, nullable=True)
h17 = db.Column(db.Float, nullable=True)
h18 = db.Column(db.Float, nullable=True)
h19 = db.Column(db.Float, nullable=True)
h20 = db.Column(db.Float, nullable=True)
h21 = db.Column(db.Float, nullable=True)
h22 = db.Column(db.Float, nullable=True)
h23 = db.Column(db.Float, nullable=True)
もう一つの問題は、私は値(例えば0 < =値= 1 <)にチェックを強制しない方法ですか?
妥当性確認として?それでは、どのように私は24フィールドのためにきれいにバリデーションを設定するのですか?
代わりに、SqlAlchemyでチェック制約を追加できますか?
あなたが本当にあなたのテーブルに24列を持つようにしたい場合は、何もありません冗長なアプローチでは間違っています。制限チェックのために[validator](http://docs.sqlalchemy.org/en/rel_0_9/orm/mapped_attributes.html#simple-validators)を記述することができます。 – Selcuk
次に、「動的に生成されたバリデータをSqlAlchemyに登録する」という質問を投稿します。 – Alain1405