gpt4 book ai didi

python - Django 规则重用谓词

转载 作者:行者123 更新时间:2023-12-03 23:45:24 26 4
gpt4 key购买 nike

我创建了 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

最佳答案

您可以定义 can_edit_specific_item通过在 can_edit_specific_item 中设置 @rules.predicate并将其作为 func 返回,仅传入您所需的字段。
我有点不确定更广泛的要求,但也许这可以解决问题

def can_edit_specific_item(*field):
@rules.predicate
def predicate(user):
return can_edit_items(user, field)
return predicate

关于python - Django 规则重用谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63102697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com