0

私はsqlalchemyミックスインを持っていて、ミックスインの列にデフォルト値を設定したいのですが、直接的な答えが見つからず、ある種の科学的方法の試行錯誤に頼りました。これは私の最初の試みであり、まだそれを使用する機会がありませんでした:

class ExampleMixin(object):
    """Mixin for `AnExample`"""

    def __init__(self, example_id):
       self.example_id = HMAC("{}".format(urandom(32).encode('base_64'))).hexdigest()
       super(ExampleMixin, self).__init__(self.example_id)

    example_id = Column(String(255))

確かに、私はまだsuperの使用法を完全には理解していませんが、ミックスインを受け取るモデルに入れずに、ミックスインのデフォルト値を提供する方法が必要です。上記は完全には正しくないと思いますが、ここから始めます。

作成時に一度だけ初期化されるデフォルト値をどのように提供しますか?

4

1 に答える 1

0

列の混合列の挿入/更新のデフォルトによると、以下のコードはあなたが望むものを達成するはずです:

def _example_id_default():
    return HMAC("{}".format(urandom(32).encode('base_64'))).hexdigest()

class ExampleMixin(object):
    """Mixin for `AnExample`"""

    example_id = Column(String(255), default=_example_id_default)
于 2013-03-05T17:04:34.507 に答える