親愛なるスタックオーバーフローのメンバー。まず、私の質問を読んでくれてありがとう。私はフラスコのfilter_by()関数を暗示しようとしています。私の問題は、議論のためにフィルターを使用しようとしているときに、私は次のエラーを受け取りました:filter_by()を使用しようとしたときにフラスコで "TypeError:filter_by()"エラーが返されました
TypeError: filter_by() takes 1 positional argument but 2 were given
私の質問にもコードが添付されています。それも見直してください。
メインアプリケーションのソースコード:
def login():
error = None
form = LoginForm(request.form)
if request.method == 'POST':
user = User.query.filter_by(Email=request.form['email']).first()
password = User.query.filter_by(Password=request.form['password']).first()
group = User.query.filter_by(user).first()
if user is None or password is None :
session['logged_in'] = False
flash('Please write your username password')
else:
session['logged_in'] = True
flash('You were logged in')
if group=="viewer":
return redirect(url_for('viewer'))
elif group=="admin":
return redirect(url_for('admin'))
elif group=="employee":
return redirect(url_for('employee'))
return render_template('login.html', form=form)
私は私のアプリのために使用されるモデル:
class User(db.Model):
__tablename__ = 'users'
Id = db.Column(db.Integer, primary_key=True)
Name = db.Column(db.String(64), index=True, unique=True)
Email = db.Column(db.String(64), index=True, unique=True)
Password = db.Column(db.String(128), index=True)
Group = db.Column(db.String(30))
Tickets = db.relationship('Request', backref='author', lazy='dynamic')
ログインページのソースコード:
<div class="innter-form">
<form class="sa-innate-form" method="post">
{{ form.csrf_token }}
<label>Email Address</label>
<input type="text" name="email" value="{{ request.form.email }}">
<label>Password</label>
<input type="password" name="password" value="{{ request.form.password }}">
<button type="submit" value="submit">Sign In</button>
<a href="">Forgot Password?</a>
</form>
</div>
モデルをどのように定義しましたか?エラーはどこで発生しますか? –
はいコード内に定義しました。エラーは、アクセスしようとしているときに発生します。私はリダイレクト部分にパスワードとユーザ名を入力すると意味します –