我有一个类的形式为:排序,并从模型计算匹配字段的Django
class data:
person.models.foreignKey("people.person")
place.models.foreignKey("places.place")
,我试图创建一个包含有与他们有多少连接具有相关联的同一人的地方的字典。 IE:
dict={[place1:place2]:count}
所以字典看起来可能是这样:
dict={[place1:place2]:3, [place1:place3]:2, ect}
到目前为止我有:
dict={}
datas=data.objects.all()
for data1 in datas:
for data2 in datas:
# if dict is empty
if not dict and data1.person == data2.person and data1.place != data2.place:
dict[(data1.place, data2.place)]=1
elif data1.person == data2.person and data1.place != data2.place:
for assoc, count in dict.items():
if assoc == (data1.place, data2.place) or assoc == (data2.place, data1.place):
count +=1
else:
dict[(data1.place, data2.place)]=1
else:
dict[(data1.place, data2.place)]=1
目前这回完全错误的关系,从来没有递增计数。我究竟做错了什么?
这似乎是在正确的轨道上。但是'dct [(data1.place,data2.place)] + = 1'会导致KeyError。任何方法来解决这个问题? – 2011-06-03 15:34:56
我已经添加了elif语句来处理这种情况。然而,如果(data1.place,data2.place)和(data2.place,data1.place)是相同的,那么你需要修改代码来考虑这一点 – 2011-06-03 15:37:58