AttributeError: у объекта 'NoneType' нет атрибута 'get_reset_token' - PullRequest
0 голосов
/ 22 апреля 2020

почему выдается ошибка атрибута функции send_reset_email (user)? Error is (AttributeError: у объекта 'NoneType' нет атрибута 'get_reset_token')?

class User(db.Model,UserMixin):
    id = db.Column(db.Integer,primary_key=True)
    username = db.Column(db.String(20),unique=True,nullable=False)
    email = db.Column(db.String(120),unique=True,nullable=False)
    image_file = db.Column(db.String(20),nullable=False,default='default.jpg')
    password = db.Column(db.String(60),nullable=False)
    posts = db.relationship('Post',backref='author',lazy=True)

    def get_reset_token(self,expires_sec=1800):
        s= Serializer(app.config['SECRET_KEY'],expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')`

def send_reset_email(user):
token = user.get_reset_token()
msg = Message('password reset request',sender ='noreply@demo.com',recipients=[user.email])
msg.body=f'''TO reset pasword visit following link:{url_for('reset_token',token=token,_external=True)} If you did not make this request simply
     ignore this email '''

@app.route("/reset_password",methods=['GET', 'POST'])
def reset_request():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form =RequestResetForm()
    if form.validate_on_submit:
        user =User.query.filter_by(email=form.email.data).first()
        send_reset_email(user)
        flash('email has been sent with instruction to reset','info')
        return redirect(url_for('login'))
    return render_template('reset_request.html',title='request update',form=form)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...