2016-12-13 10 views
0

ユーザーの会社のグループのみを表示する選択メニューをフィルタリングする必要があります。 sqlalchemyではQuerySelectFieldがありましたが、これはフラスコ・モンゴエンエンジンでは利用できません。理想的には、私は次のようにmodel_formするCURRENT_USERをflask_login渡ししたいと思います。しかしmodel_formでcurrent_userを使用する方法

wtfUser = model_form(User, wtf.Form, exclude=[ 'password'], field_args = { 
    'group' : { 'queryset': Group.objects(company = current_user.group.company) }, 
    'roles' : { 'queryset': Role.objects(name__ne = 'admin').order_by('name') } 
}) 

を、これは要求コンテキスト外でCURRENT_USERを配置するので、これはエラーになります。誰もこれを行う方法について巧妙なアイデアを持っていますか?

+0

関連GitHub問題:https://github.com/MongoEngine/flask-mongoengine/issues/290 –

答えて

0

しかし、最もエレガントなアプローチではありません。 views.pyでは次のことを行います。より良いアプローチがあれば投稿してください。

def user(id): 
    user = User.objects.get_or_404(id = id) 
    wtf_user = wtfUser(obj = user) 
    wtf_user.group.queryset = Group.objects(id = current_user.group.id) 
    return render_template('user.html', wtf_user = wtf_user) 
関連する問題