django - 在 django 中创建实例时更新 manytomany 相关字段
问题描述
我想在MobileCustomer
创建实例时更新与 M2M 相关的字段我尝试了信号但它似乎很复杂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)
感谢您的帮助..谢谢
解决方案
推荐阅读
- r - 加入2个数据框
- php - PHP Laravel 应用程序令牌不匹配异常错误
- swift - 如何快速解开可选值?
- amazon-web-services - 使用 aws cognito 的最佳实践
- spring-data-jpa - 如何将实体关系中的特定 Envers 修订定位到@Audited 实体?
- c++ - 如何读取字符串中的最后一个字符
- android - Android Studio 谷歌地图 api 和 API 密钥用于发布
- javascript - 当布尔值变为假时,检查 5 秒是否会变回真,否则执行一些操作
- javascript - 为什么 .setHours(0,0,0,0) 会导致 T07:00:00.000Z
- python - Keras:如何确定在哪个迭代中保存了最佳 val 模型?