我想让elif中的变量显而易见,而不是将其设为全局变量,是否可以通过其他方式实现?
if query !=something:
all_toys = Toys.objects.filter(user_name=request.user)
elif query2 != something:
all_toys = all_toys.filter(amount=20)
第二个all_toys不可见,我在分配之前引用了这个错误django。
答案 0 :(得分:1)
另一种方法是创建过滤字典
filter_kw = {}
if query !=something:
filter_kw['user_name'] = request.user
elif query2 != something:
filter_kw['amount'] = 20
all_toys = Toys.objects.filter(**filter_kw)
答案 1 :(得分:0)
为什么不能在顶部声明值并在所有条件下使用它?
all_toys = Toys.objects.all()
if query != something:
all_toys = all_toys.filter(...)
else:
all_toys = all_toys.filter(...)
在你的情况下,不会在elif块中定义all_toys