我创建了 2 个谓词,它们本质上非常相似。一个消耗一个列表,另一个消耗一个静态字符串。
@rules.predicate
def can_edit_items(user, fields):
for perm in user.groups.all()
if perm.name not in settings.fields[fields]
return False
return True
@rules.predicate
def can_edit_specific_item(user, field):
for perm in user.groups.all()
if perm.name not in settings.fields[field]
return False
return True
我的要求是can_edit_specific_item()
必须can_edit_items()
通过传入单个字符串来使用field_1
我已经尝试创建以下变体,但它似乎没有按我的意图工作
@rules.predicate
def can_edit_specific_item(user, field):
for perm in user.groups.all()
if perm.name not in can_edit_items[field]
return False
return True