我有一个具有 m2m 关系的对象,我想在保存后填充它。
问题是信号被触发了,但是add命令不起作用。我确实使用 python shell 尝试了相同的步骤,并且效果很好。
class Event(models.Model):
name = models.CharField(max_lenght=40)
location = models.ManyToManyField('Location')
class Location(models.Model):
address = models.CharField(max_lenght=60)
@receiver(post_save, sender=Event)
def populate_location(sender, instance, **kwargs):
instance.locations.add(*Locations.objects.all())
有什么提示吗?
最佳答案
如果您想添加所有可以使用set()
而不是add
的对象,您可以查看文档 - https://docs.djangoproject.com/en/2.1/ref/models/relations/#django.db.models.fields.related.RelatedManager.set
还有一个建议,如果您使用 add
,请尝试在执行后立即打印 instance.locations
- instance.locations.add(*Locations.objects .all())
并发布结果。
关于python - 在 post_save 上添加 M2M,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52598078/