Django instance.add() не работает при добавлении нового поля m2m

Разница между кодом 1 и кодом 2, приведенным ниже, заключается в том, что поля industry и dindustry поменялись местами. В то время как код 1 работает нормально, код 2 не обновляет базу данных. Может кто-нибудь помочь.....

Примечание:

  1. Таблица была изменена, а dindustry была создана заново.
  2. Нет проблем с миграцией, я могу добавлять записи как в industry, так и в dindustry через django Admin
  3. .

Код 1:

@receiver(m2m_changed, sender=Company.dindustry.through)
def video_category_changed(sender, instance, action, pk_set, **kwargs):
    if action == "post_add":
        sectors = Sectors.objects.filter(id__in=pk_set)
        roots = set()
        for sector in sectors:
            root = sector.get_root()
            if not instance.industry.filter(id=root.id).exists():
                instance.industry.add(root)
                print('data added')

Код 2:

@receiver(m2m_changed, sender=Company.industry.through)
def video_category_changed(sender, instance, action, pk_set, **kwargs):
    if action == "post_add":
        sectors = Sectors.objects.filter(id__in=pk_set)
        roots = set()
        for sector in sectors:
            root = sector.get_root()
            if not instance.dindustry.filter(id=root.id).exists():
                instance.dindustry.add(root)
                print('data added')

Моя модель выглядит следующим образом:

class Company(MPTTModel):
    industry = models.ManyToManyField(Sectors, related_name='relatedname_industry', blank=True)
    dindustry = models.ManyToManyField(Sectors, related_name='relatedname_dindustry', blank=True)

class Sectors(MPTTModel):
    sector = models.CharField(max_length=100)
    parent = TreeForeignKey('self', on_delete=models.CASCADE, null=True, blank=True, related_name='children')

Он хорошо работает с одним m2m-полем, но не работает с другим m2m-полем в той же таблице

Вернуться на верх