Tout simplement je crée un User
dans Flask-User mais je veux déterminer par programme certains champs lorsque le User
est créé. A savoir, je veux attribuer le User
un UUID4.Comment gérer un utilisateur par programme avant de valider la base de données dans Flask-User?
J'ai commencé avec le modèle suivant: Flask-User-starter-app
J'ai défini le champ j'ai besoin dans mon models.py
:
class User(db.Model, UserMixin):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
...
public_uuid = db.Column(db.String(32), nullable=False, unique=True)
...
Cependant, je semble incapable de trouver un endroit où je peux intercepter l'objet utilisateur et mis user.public_uuid = uuid.uuid4().hex
J'ai essayé de le déclarer dans ma forme (bien que je me suis dit d'avance que ne fonctionnerait pas): class MyRegisterForm(RegisterForm): public_uuid = uuid.uuid4().hex
Donc je me retrouve avec une erreur que public_uuid est Null
lors de l'écriture dans la base de données.
Où puis-je gérer mon objet utilisateur avant qu'il ne soit affecté à la base de données?
Tout semble si évident maintenant. J'avais joué avec 'default' mais je le passais' uuid.uuid4(). Hex' directement, ce qui conduisait à créer un uuid à l'instanciation. Mais cette façon a du sens. Merci! – pyskell