Python Flask登录是_activewon';我不能保持不变

Python Flask登录是_activewon';我不能保持不变,python,flask,flask-sqlalchemy,flask-login,Python,Flask,Flask Sqlalchemy,Flask Login,由于我的关系数据库的工作方式,我不想为了删除帐户而从数据库中删除表,而是想通过更改is_active函数在我的用户类中返回的内容来停用它们。问题是,我的用户类中的属性“active”不会保持为False——每次我尝试在停用测试帐户后使用该帐户登录时,它仍然能够正常登录,并且通过测试,我看到了当前用户。_get_current_object()。active为True,即使我在上一个会话中将其设置为False。以下是我的查看功能: @app.route('/deleteaccount', meth

由于我的关系数据库的工作方式,我不想为了删除帐户而从数据库中删除表,而是想通过更改is_active函数在我的用户类中返回的内容来停用它们。问题是,我的用户类中的属性“active”不会保持为False——每次我尝试在停用测试帐户后使用该帐户登录时,它仍然能够正常登录,并且通过测试,我看到了当前用户。_get_current_object()。active为True,即使我在上一个会话中将其设置为False。以下是我的查看功能:

@app.route('/deleteaccount', methods=['GET', 'POST'])
@login_required
def confirmdeletion():
    form = LoginForm()
    if form.validate_on_submit():
        currentuser = current_user._get_current_object()
        currentuser.active = False
        flash("Account deletion successful")
        return redirect(url_for('frontpage'))
    return render_template('login.html', form=form, delete=True)
以下是my models.py代码的一部分:

class User(db.Model):
user_email = db.Column(db.Text, primary_key=True)
user_password = db.Column(db.Text)
favorites = db.relationship('Performer', secondary=favorites, backref=db.backref('followers', lazy='dynamic'), lazy='dynamic')
active = db.Column(db.Boolean)

def __init__(self, user_email, user_password):
    self.user_email = user_email
    self.user_password = user_password
    self.active = True
def __repr__(self):
    return '<User {0}>'.format(self.user_email)
def is_authenticated(self):
    return True
def is_active(self):
    return self.active
def is_anonymous(self):
    return False
def get_id(self):
    try:
        return unicode(self.user_email)
    except NameError:
        return str(self.user_email)
类用户(db.Model):
user\u email=db.Column(db.Text,主键=True)
用户密码=db.Column(db.Text)
favorites=db.relationship('Performer',secondary=favorites,backref=db.backref('followers',lazy='dynamic'),lazy='dynamic'))
active=db.Column(db.Boolean)
定义初始化(自我、用户电子邮件、用户密码):
self.user\u email=用户\u email
self.user\u password=用户\u密码
self.active=True
定义报告(自我):
返回“”。格式(self.user\u电子邮件)
def已通过身份验证(自身):
返回真值
def处于活动状态(自):
返回自激活状态
def是匿名的(自我):
返回错误
def get_id(自身):
尝试:
返回unicode(self.user\u电子邮件)
除名称错误外:
返回str(self.user\u电子邮件)
再一次,我的问题是self.active不会在/deleteCount过程中保持为False。我很感激你的帮助。另外,这是我在这里的第一个问题,所以如果我在这个问题中遗漏了一些重要的东西,请告诉我。谢谢


注意:我已经尝试在构造函数中省略self.active=True,并且尝试在构造函数中定义self.active=True,而在我上面定义它的地方省略了self.active=True,这两种方法都不起作用

您需要提交对模型所做的更改:

def confirmdeletion():
    #...
    if form.validate_on_submit():
        #...
        current_user.active = False
        db.session.commit()
        #...