から値を取得:SQLAlchemyの:私は<strong>フラスコSQLAlchemyの</strong>を使用して、以下の表を持っている初期化子
class Posts(db.Model):
id = db.Column(db.Integer, primary_key=True)
hashID = db.Column(db.String(6))
post = db.Column(db.String(500))
def __init__(self, post):
self.hashID = hashid.encode(self.id)
self.post = post
私はautoincrementd IDフィールドを使用してハッシュを作成したいです。私は他の質問から見たdb.session.flush()
しかし、私は好ましくは内部からIDを取得するので、これは動作しませんinit
。
self.id
を使用している上記のコードは、self.id
がNoneTypeを返すため動作しません。 init
の内部から生成されるIDを取得する方法はありますか?ありがとう。
あなたは 'self'をセッションに追加してからフラッシュすることができますが、それは良い考えではありません。オートインクリメントの代わりに、ID生成スキームを思いつくことで、アプリでDBの代わりにIDを生成することができます。 – univerio
@univerioアプリ内の自動インクリメントは、より簡単な解決策のために複雑に思えます。 –
私はこの問題が、あなたが 'db.Model'クラスの* \ __ init \ __ *メソッドをオーバーライドしている可能性があると思います。参照してください:http://stackoverflow.com/questions/3279833/ – wgwz