flask - login_user() Nonetype 对象没有属性 is_active 和 flask_login
问题描述
我正在关注本教程,当我试图记住注册后登录的用户时,它不起作用并显示'NoneType' object has no attribute 'is_active'
错误,虽然它确实注册了用户,所以我不知道发生了什么,它之前工作过所以我知道问题不在于函数本身。
这是代码:
def signup():
if request.method == "POST":
# getting information into backend
email = request.form.get('email')
user_name = request.form.get('userName')
password_first = request.form.get('passwordFirst')
password_confirm = request.form.get('passwordConfirm')
# Checking if everything's ok
user = User.query.filter_by(email=email).first()
if user:
flash("This email is already linked to an account", category="error")
elif len(email) < 3:
flash("Email must be at least 3 characters", category="error")
elif len(user_name) < 2:
flash("Username must be at least 2 characters", category="error")
elif password_first != password_confirm:
flash("Passwords don't match", category="error")
elif len(password_first) < 8:
flash("Password must be at least 8 characters long", category="error")
# adding user to database
else:
new_user = User(email=email, user_name=user_name, password=generate_password_hash(password_first, method="sha256"))
db.session.add(new_user)
db.session.commit()
login_user(user, remember=True)
flash("Account created successfully! :)", category="success")
return redirect(url_for("views.home"))
return render_template("signup.html")
解决方案
应该login_user(user, remember=True)
,而不是login_user(new_user, remember=True)
?
推荐阅读
- javascript - 从 Create React App 中删除内联样式
- php - WooCommerce:从每个捆绑产品中获取数据
- python - Python DataFrame 列成行
- python - 如何将 numpy.int32 转换为 decimal.Decimal
- c# - C#如何从文本框中获取屏蔽密码?
- linux - 到达终端末尾时在 bash 中保持表格的格式
- javascript - 仅计算一个特定时区的时区偏移量
- java - Handling exceptions in axon when listening to the same event multiple times in same spring boot application
- jira - 如何在 Jira 上搜索父母符合条件的所有子任务
- firebase - 文档名称中包含多个变量的 Firestore 数据