Ниже показано, что различное число равно 2247
In [6]: VirtualMachineResources.objects.all().values('machine', 'cluster')
...: .distinct().count()
Out[6]: 2247
Но затем, когда я перебираю его, он возвращает намного больше, чем должен:
In [4]: a = []
...: for resource in VirtualMachineResources.objects.all().values('mach
...: ine', 'cluster').distinct():
...: if resource['cluster']:
...: a.append(resource['cluster'])
...:
...:
In [5]: len(a)
Out[5]: 96953
Учитывая, что записи имеют кластерполе пустое, и когда я перебираю набор запросов, я вижу много повторов одной и той же машины без значения кластера, но я ожидаю только один раз.
for resource in VirtualMachineResources.objects.all().values('machine', 'cluster').distinct():
print(resource['machine'], resource['cluster'])
печатает ...
server1
server1
server1
Это база данных postgres.Есть идеи?Есть еще несколько раскопок в Google и этот кажется связанным?
ОБНОВЛЕНИЕ: Создана проблема Django здесь