【问题标题】:How to use current_user in model_form如何在 model_form 中使用 current_user
【发布时间】:2017-08-21 02:35:36
【问题描述】:

我需要过滤仅显示用户公司中的组的选择菜单。使用 sqlalchemy 有 QuerySelectField,但是,这在 flask-mongoengine 中似乎不可用。理想情况下,我想将 flask_login current_user 传递给 model_form,如下所示:

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 置于请求上下文之外,因此会导致错误。有没有人知道如何做到这一点?

【问题讨论】:

标签: wtforms flask-wtforms flask-mongoengine


【解决方案1】:

这不是最优雅的方法,但它确实有效。在 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多