简体   繁体   English

'NoneType'对象没有属性'username'?

[英]'NoneType' object has no attribute 'username'?

so i got this error 所以我得到这个错误

AttributeError: 'NoneType' object has no attribute 'username' AttributeError:'NoneType'对象没有属性'username'

any suggestions, 有什么建议么,

Models.py 型号

class User(db.Model):
    __tablename__ = "users"
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    password = db.Column(db.String(20), unique=True)


    def __init__(self, username, password):
        self.username = username
        self.password= bcrypt.generate_password_hash(password, 10)




    def is_authenticated(self):
        return True


    def is_active(self):
        return True

    def is_anonymous(self):
        return False

    def get_id(self):
        return (self.id)


    def __repr__(self):
        return '<User %r>' % self.username

Views.py Views.py

@app.route('/register', methods=['GET','POST'])
def register():
    if request.method == 'GET':
        return render_template('register.html')
    user = User(request.form['username'] , request.form['password'] )
    username = request.form['username']
    password = request.form['password']
    storeduser = User.query.filter_by(username=username).first()
    if storeduser.username is not None and storeduser.username == request.form['username']:
        return 'User already Exist !'
    else:
        db.session.add(user)
        db.session.commit()
        flash('User successfully registered')
        return redirect(url_for('index'))

Pretty much if client username matches a current username output Existing user registered, if not register username. 如果客户端用户名与当前用户名输出匹配,则几乎是现有用户注册(如果未注册)。

im referring to my username in my models(in case you were wondering) 我在模型中指的是我的用户名(如果您想知道的话)

The User.query.filter_by(username=username).first() query returned None , meaning the user was not found. User.query.filter_by(username=username).first()查询返回None ,表示找不到用户。

You need to test if storeduser is not None first, not storeduser.username : 您需要先测试一下storeduser是否不是None而不是 storeduser.username

if storeduser is not None and storeduser.username == request.form['username']:
    return 'User already Exist !'

Because you queried on request.form['username'] the latter test is redundant, you only really need to use; 因为您是在request.form['username']上查询的,所以后面的测试是多余的,因此您只需要使用;

if storeduser is not None:
    return 'User already Exist !'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 &#39;NoneType&#39; 对象没有属性 &#39;username&#39; - 'NoneType' object has no attribute 'username' AttributeError:&#39;NoneType&#39;对象没有属性&#39;userName&#39; - AttributeError: 'NoneType' object has no attribute 'userName' auth_user.username给出“ NoneType”对象没有属性“ username” - auth_user.username gives 'NoneType' object has no attribute 'username' Python:“ NoneType”对象没有属性“ get_username” - Python: 'NoneType' object has no attribute 'get_username' Heroku 内部服务器错误 500:“NoneType”对象没有“用户名”属性 - Heroku Internal Server Error 500: 'NoneType' object has no attribute 'username' NoneType 对象没有属性 - NoneType object has no attribute &#39;NoneType&#39;对象在项目上没有属性&#39;username&#39;,该项目已经运行了一段时间 - 'NoneType' object has no attribute 'username' on a project which has been working fine for some time &#39;NoneType&#39;对象没有属性&#39;adapter&#39;,&#39;NoneType&#39;对象没有属性&#39;text&#39; - 'NoneType' object has no attribute 'adapter', 'NoneType' object has no attribute 'text' &#39;NoneType&#39;对象没有属性&#39;PrimarySmtpAddress&#39; - 'NoneType' object has no attribute 'PrimarySmtpAddress' &#39;NoneType&#39;对象没有属性&#39;height&#39; - 'NoneType' object has no attribute 'height'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM