私はFlaskとpyMongoを使用してWebアプリを開発していますが、最近、mongodbのサポートを受けて、Flask-Adminモジュール(1.0.4)の統合を開始しました。
ModelViewsを使用する場合はすべてスムーズで問題ありませんが、BaseViewのサブクラス化に関しては、単純に機能させることができません。
これが私の設定です:
user_view = Admin(app, name='User stuff', url="/user", endpoint="user")
class ProfileForm(wtf.Form):
username = wtf.TextField('Username', [wtf.Required()])
name = wtf.TextField('Name', [wtf.Required()])
class Profile(BaseView):
@expose('/', methods=('GET', 'POST'))
def profile(self):
user = User(uid) # gets the user's data from DB
form = ProfileForm(request.form, obj=user)
if form.validate_on_submit():
data = form.data
user.set(**data)
user.save()
flash("Your profile has been saved")
else:
flash("form did not validate on submit")
return self.render('user/profile.html', form=form, data=user)
user_view.add_view(Profile(name='Profile', url='profile'))
フォームを送信するとき、wtformsはエラーを報告しませんが(エラーがない限り)、検証はプロファイルビューに戻りません(else:ブランチは常に実行されます)
フラスコ管理者のドキュメント、ソースコード、および例を徹底的にスキャンしたにもかかわらず、この機能を実現する方法はありません。
誰かが私のコードを修正する方法、またはこの問題を回避する方法を提案できますか?