【发布时间】:2020-10-09 12:03:21
【问题描述】:
我想在创建实例时更新字段我尝试过signals 但它似乎对ManyToManyField 很复杂
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)
我想在创建MobileCustomer 时更新Imei 模型中的活动字段!?
我在我的CreateView form_valid 中尝试过这个
imei = Imei.objects.filter(selectmobile__item=self.object).update(active=False)
print(imei)
它打印了 0 ? 每当在 createview 中创建实例时,如何使用信号或 update() 使其工作
【问题讨论】:
标签: django django-models many-to-many signals