Django Счетчик пересечений "многие ко многим
Я пытаюсь найти MaunelItemGroups, которые имеют более N одинаковых M2M элементов, как определенная AutoItemGroup
class Item(models.model):
info = models.CharField(null=False, max_length=20)
class AutoItemGroup(models.model):
items = models.ManyToManyField(Item, blank=True)
class ManuelItemGroup(models.model):
items = models.ManyToManyField(Item, blank=True)
auto_group = AutoItemGroup.objects.all().first()
# find manuel group that has more than N of the same M2M items as above auto_group
Помогите пожалуйста, это интенсивное сравнение M2M пересечений между 2 моделями, каждая из которых имеет M2M поле с одной и той же моделью (Item).
for item in Item.objects.all():
if item.manuelitemgroup_set.all().count() > item.autoitemgroup_set.count():
print(f"{item} has more Manus than Autos")
Это покажет для каждого элемента, больше ли у него манусов, чем авто. Я все еще не уверен на 100%, что это то, чего вы пытаетесь достичь. Похоже, вы немного запутались в том, как работают отношения m2m, я бы рекомендовал вам найти время, чтобы посмотреть это.