如何在迭代期间使用set()
?我仍然有单一价值。
data = {'mynumber': set()}
example = Example.objects.filter(user=request.user)
for e in example:
data['mynumber'].add(e.mynumber)
print data #{'mynumber': set([15.0])}
答案 0 :(得分:1)
尝试使用setdefault
:
当您的条件满足时,以下代码段将为该数字或键创建一个空集,因此如果它已经存在则会创建,否则它将重复使用:
data.setdefault('mynumber', set())
答案 1 :(得分:0)
基于原始修改
您要添加一组mynumber
,其中只能包含唯一值,django查询Example.objects.filter(mynumber=5)
的结果只包含mynumber
为5的项目...因此,你只会得到一个空集(没有查询结果)或一个包含5(一个或多个结果)的集合。
注意强>
在您跟踪代码以检查您是否获得了您期望的值之后,您可以摆脱循环并将代码编写为:
data = {'mynumber': set(Example.objects.filter(user=request.user).values_list('mynumber'))