Я хочу обновить поле, связанное с M2M, всякий раз, когда был создан экземпляр MobileCustomer
Я пробовал сигналы, но это кажется сложным для ManyToManyField
, я хочу обновить active
с active=True
до active=False
поля в модели Imei
я пробовал эти способы, но ни один из них не работал в моем случае, я ценю вашу помощь
def mobile_customer(sender,instance,created,*args,**kwargs):
if created:
for status in instance.imei.all():
Imei.objects.filter(pk=status.id).update(active=False)
post_save.connect(mobile_customer,sender=SelectMobile)
, а также это в моем CreateView
классе views.py
Imei.objects.filter(selectmobile__item=self.object).update(active=False)
даже если я попытаюсь напечатать Imei.objects.filter(selectmobile__item=self.object).update(active=False)
, результат будет 0!
это моя модель дизайна
class MobileCustomer(models.Model):
customer = models.CharField(max_length=30)
phone = models.CharField(max_length=13)
mobile = models.ManyToManyField(MobileStorage,through='SelectMobile')
class SelectMobile(models.Model):
mobile = models.ForeignKey(MobileStorage,on_delete=models.CASCADE)
item = models.ForeignKey(MobileCustomer,on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=1)
imei = models.ManyToManyField(Imei)
class MobileStorage(models.Model):
mobile = models.ForeignKey(Mobile,on_delete=models.CASCADE)
quantity = models.PositiveIntegerField()
class Mobile(models.Model):
mobile_name = models.CharField(max_length=40,unique=True)
class Imei(models.Model):
imei = models.CharField(max_length=15,verbose_name='IMEI',unique=True)
mobile = models.ForeignKey(MobileStorage,on_delete=models.CASCADE)
active = models.BooleanField(default=True)
Я ценю вашу помощь .. спасибо