Ich habe eine Klasse weiter unten:Warum aktualisiert flask sql alchemy kein Attribut für einen Datensatz?
class Account(db.Model, flask_login.UserMixin):
__tablename__ = 'account'
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(75))
username = db.Column(db.String(50))
password = db.Column(db.String(250))
admin = db.Column(db.Boolean)
def __init__(self, email='', username='', password='', admin=None):
self.email = email
self.username = username
self.password = password
self.admin = admin
def __repr__(self):
return '<Account %r>' % self.username
Wenn ich ein Konto über ein Formular erstellen, wird das Admin-Attribut None
sein. Wenn ich jedoch auf die Datenbank zugreife und versuche, sie manuell auf True
zu setzen, wird das Attribut aktualisiert, aber wenn ich erneut auf die Datenbank zugreife, ist das Attribut None
. Es ist super nervig.
Hier ist, was ich auf der Konsole ausführen:
account = Account.query.get(1)
account.admin = True
db.session.commit()
db.admin ----> True
exit()
#restart again
account = Account.query.get(1)
account.admin ----> None
Was mache ich falsch?
"Get" muss nicht erneut den Datensatz abrufen. Sind Sie sicher, dass Sie eine saubere Sitzung haben, wenn 'account.admin'' None' ist? – univerio
Wenn 'db.admin' kein Tippfehler ist (sollte' account.admin' sein), kann ich das Problem nicht reproduzieren. Bitte [bearbeiten], um ein [mcve] einzuschließen. – davidism