0
に同じデフォルトのIDをプッシュ:SQLAlchemyのは、私は、ランダムなユーザーIDを作成するには、このメソッドを持って作成
import random
import string
def generate_id():
size = 9
chars = string.ascii_uppercase + string.ascii_lowercase + string.digits
return ''.join(random.SystemRandom().choice(chars) for _ in range(size))
そしてユーザーのために、このSQLAlchemyのオブジェクト:
class User(db.Model, UserMixin):
__tablename__ = 'user'
id = db.Column(db.String, primary_key=True, default=generate_id())
name = db.Column(db.String(255))
# ...
私の問題は、次のとおりです。時にはそれ(問題を起こさずに新しいユーザーを登録して作成するユーザーもいます)user.id
のdefault
が既に使用されていて、このエラーが発生することがあります。
sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: user.id
このエラーは、少なくとも半分は発生します。
うんを!多くの意味があります。呼び出し可能なデフォルトについて知らなかった!あなたは私の一日を作った:) – Jivan