Django使变量可见

时间:2016-10-31 07:41:04

标签: python django

我想让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。

2 个答案:

答案 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