1
私のFlaskアプリケーションのユーザーは、新しい電子メールとその現在のパスワードを入力することで電子メールを変更できます。しかし、私がUser.query.filter_by(password=form.password.data)
で入力したパスワードでユーザーを検索しようとすると、ユーザーは決して見つけられません。パスワードを確認しながらメールを変更できるように、ユーザーに問い合わせるにはどうすればよいですか?ハッシュされたパスワードを格納するパスワードでSQLAlchemyのユーザーモデルを照会することはありません
@app.route('/changeemail', methods=['GET', 'POST'])
def change_email():
form = ChangeEmailForm(request.form)
if form.validate_on_submit():
user = User.query.filter_by(password=form.password.data).first()
if user and bcrypt.check_password_hash(user.password,form.password.data):
user.email = form.email.data
db.session.commit()
return redirect(url_for("user.confirmed"))
return render_template('user/changeemail.html',form=form)
class ChangeEmailForm(Form):
email = TextField('email', validators=[DataRequired()])
password = PasswordField('password', validators=[DataRequired()])
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String, unique=True, nullable=False)
password = db.Column(db.String, nullable=False)
ありがとうございます!はい。私はちょうどあなたもIDで照会することができることに気づいた。私はオプションの外だったと思った! – Benji