【发布时间】:2020-11-22 22:39:26
【问题描述】:
我想根据其父模型更新 m2m 字段,例如:
class ModelA(models.Model):
status = models.BooleanField(default=True)
status_of_product = models.ManyToManyField(Product, verbose_name='product')
class Product(models.Model):
active = models.BooleanField(default=False)
products = models.CharField(max_length=30, unique=True)
现在这会生成一个名为 modela_status_of_product 的单独表。
只有当ModelA 中的status 字段等于True 时,我才想更新Product 中的active 字段。
def update_product_m2m(sender, instance, **kwargs):
if instance.status == True: #this is wrong and doesnt work
Product.objects.filter(pk__in=kwargs.get('pk_set')).update(active=True)
m2m_changed.connect(update_product_m2m, sender=ModelA.status_of_product.through)
请问可以吗?感谢您的帮助。
【问题讨论】: