2
我是相當新的燒瓶,我想使用裝飾器的migthy能力:p 我讀了很多東西,發現了大量關於python裝飾器的主題但沒有什麼真正有用的燒瓶裝飾器:無法傳遞參數從URL
@app.route('groups/<id_group>')
@group_required(id_group)
@login_required
def groups_groupIndex(id_group):
#do some stuff
return render_template('index_group.html')
這是錯誤我得到:
@group_required(id_group), NameError: name 'id_group' is not defined
好吧,id_group沒有定義,但我不明白爲什麼我可以在功能groups_groupIndex使用id_group參數從URL,但不在裝修!
我嘗試移動/切換裝飾器,但每次都發生同樣的錯誤。
這裏是我的裝飾,但它似乎做工精細
def group_required(group_id):
def decorated(func):
@wraps(func)
def inner (*args, **kwargs):
#Core_usergroup : table to match users and groups
groups = Core_usergroup.query.filter_by(user_id = g.user.id).all()
for group in groups:
#if the current user is in the group : return func
if int(group.group_id) == int(group_id) :
return func(*args, **kwargs)
flash(gettext('You have no right on this group'))
return render_template('access_denied.html')
return inner
return decorated
也許我沒有看到喜歡的裝飾我應該...我可以用我的裝飾這樣或需要我重新編寫不同的東西?
我知道這是範圍問題,非常感謝,現在的作品完美:) –