解决Flask和Django的错误“TypeError: 'bool' object is not callable”

解决Flask和Django的错误“TypeError: 'bool' object is not callable”,第1张

概述跟着欢迎进入Flask大型教程项目!的教程学习Flask,到了重构用户模型的时候,运行脚本后报错: TypeError: 'bool' object is not callable 这

跟着欢迎进入Flask大型教程项目!的教程学习Flask,到了重构用户模型的时候,运行脚本后报错:

TypeError: 'bool' object is not callable

这是用户模型:

class User(db.Model):    ID = db.Column(db.Integer,primary_key=True)    nickname = db.Column(db.String(64),index=True,unique=True)    email = db.Column(db.String(120),unique=True)    posts = db.relationship('Post',backref='author',lazy='dynamic')    @property    def is_authenticated(self):        return True    @property    def is_active(self):        return True    @property    def is_anonymous(self):        return False    def get_ID(self):        try:            return unicode(self.ID)  # python 2        except nameError:            return str(self.ID)  # python 3    def __repr__(self):        return '<User %r>' % (self.nickname)

这是调用的时候的代码:

from flask import render_template,flash,redirect,session,url_for,request,gfrom flask.ext.login import login_user,logout_user,current_user,login_requiredfrom app import app,db,lm,oIDfrom .forms import LoginFormfrom .models import User@app.route('/login',methods=['GET','POST'])@oID.loginhandlerdef login():    if g.user is not None and g.user.is_authenticated():  # 这一句报错        return redirect(url_for('index'))    form = LoginForm()    if form.valIDate_on_submit():        session['remember_me'] = form.remember_me.data        return oID.try_login(form.openID.data,ask_for=['nickname','email'])    return render_template('login.HTML',Title='Sign In',form=form,provIDers=app.config['OPENID_PROVIDERS'])

解决方法:

按照参考资料里面的说法:
is_authenticated是属性而不是方法,把括号去掉就可以了。书里这一段有两处印刷错误,请参照git源码。

把出错的地方:
if g.user is not None and g.user.is_authenticated():
修改为
if g.user is not None and g.user.is_authenticated:
然后就不报错了。

 

总结

以上是内存溢出为你收集整理的解决Flask和Django的错误“TypeError: 'bool' object is not callable”全部内容,希望文章能够帮你解决解决Flask和Django的错误“TypeError: 'bool' object is not callable”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1209881.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存