Как создать набор запросов "многие ко многим

Вот моя таблица филиала и таблица магазина

Сколько записей о филиалах имеется в таблице store и подсчет. Я пробую, но не получается.

class Branch(models.Model): # Branch Master
    status_type = (
        ("a",'Active'),
        ("d",'Deactive'),
    )
    name = models.CharField(max_length=100, unique=True)
    suffix = models.CharField(max_length=8, unique=True)
    Remark = models.CharField(max_length=200, null=True, blank=True)
    created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
    create_at = models.DateTimeField(auto_now_add=True)
    update_at = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=1, choices = status_type, default = 'a')
    def __str__(self):
        return self.name

class Store(models.Model):
    status_type = (
        ("y",'Yes'),
        ("n","No")
    )
    branch = models.ManyToManyField(Branch)
    asset = models.ForeignKey(Asset,on_delete=models.CASCADE)
    asset_code = models.CharField(max_length=100, null=True, blank=True, unique = True)
    model = models.CharField(max_length=250)
    serial_no = models.CharField(max_length=200)
    vendor = models.ForeignKey(Vendor,on_delete=models.CASCADE)
    invoice_no = models.CharField(max_length=50)
    purchase_date = models.DateField()
    store_status = models.CharField(max_length=1, choices = status_type, default = "y", blank = True)
    store_date = models.DateTimeField(null = True, blank = True)

    assige = models.CharField(max_length=1, choices = status_type, default = "n", blank = True)
    assige_date = models.DateTimeField(null = True, blank = True)
    
    scrap = models.CharField(max_length=1, choices = status_type, default = "n", blank = True)
    scrap_date = models.DateTimeField(null = True, blank = True)
    
    created_by = models.ForeignKey(User, on_delete=models.CASCADE)
    create_at = models.DateTimeField(auto_now_add=True)
    update_at = models.DateTimeField(auto_now=True)

Query

get store object

store_obj = Store.objects.get( id= 5)

попытка получить счетчик записей ветвления

tempcount = Store.objects.filter( branch = store_obj ).count()

Я устал, чтобы получить счетчик ветвей.

Чтобы получить количество записей филиалов, связанных с магазином, следует запросить модель Branch. Поскольку поддерживаются обратные m2m-запросы, вы можете просто сделать:

branch_count = Branch.objects.filter(store=store_obj).count()
Вернуться на верх