Я пытаюсь написать набор запросов, который отфильтровывает уникальные комбинации родитель / имя.Меня интересует только первое вхождение уникального родительского имени.
ID PARENT TYPE LIBTYPE NAME
1 1 project 1 book_a
4 4 project 2 book_b
5 4 project 2 book_c
6 4 project 2 book_d
7 4 project 4 book_c
8 5 project 2 book_e
9 5 project 4 book_e
10 7 project 0 book_f
11 7 project 0 book_g
12 7 project 6 book_h
13 6 user 1 book_i
14 6 project 1 book_j
15 6 project 1 book_k
16 7 project 5 book_h
17 7 project 8 book_h
18 7 project 7 book_h
19 7 project 9 book_h
20 7 project 1 book_h
21 8 project 1 book_a
Итак, мы начали с базового набора запросов ..
vars = Variants.objects.filter(type="project")
Это исключило одинокого пользователя ..Теперь в чистом Python я бы просто сделал это, чтобы отфильтровать эту присоску.
vars = Variants.objects.filter(type="project")
new_vars = []
for idx, var in vars.enumerate():
if var.name not in new_vars:
new_vars.append((var.parent,var.name))
else:
del vars[idx]
В конце я должен получить следующие идентификаторы (1,4,5,6,8,10,11,13,14,15,21). Я не могу перечислитьQueryset плюс Я уверен, что есть способ отфильтровать это в Django.
Может кто-нибудь, пожалуйста, пролить свет на то, как эффективно сделать это в Django?