Django 许多通知都不起作用
当我保存模型时,我真的不明白为什么。通知不会保存多个关系,Django 许多通知都不起作用,django,Django,当我保存模型时,我真的不明白为什么。通知不会保存多个关系,example。你知道吗 def notifs_rerservationorder(sender, instance, *args, **kwargs): rerservationorder = instance table_nb = rerservationorder.exemple.all() notify = Notification(rerservationorder=rerservationorder,
example
。你知道吗
def notifs_rerservationorder(sender, instance, *args, **kwargs):
rerservationorder = instance
table_nb = rerservationorder.exemple.all()
notify = Notification(rerservationorder=rerservationorder, notification_type=9)
notify.save()
notify.exemple.add(*table_nb)
notify.save()
post_save.connect(notifs_rerservationorder, sender=RerservationOrder
class Notification(models.Model):
NOTIFICATION_TYPES = ...
...
exemple = models.ManyToManyField('post.Exemple',blank=True, null=True, related_name='notifs_exemple')
...
)
首次保存模型时,
ManyToManyField
将永远不包含任何值。实际上,Django首先需要将记录保存在数据库中,然后才能在多对多关系中添加项,因为它需要ReservationOrder
的主键
如果在多对多关系中添加/删除/清除项目之前或之后将这些项目保存到数据库中,则可以使用将激发的
但是,由于它使
.save()
将做什么、以什么顺序等变得不可预测。通常,最好将逻辑封装在函数中,并在创建/更新保留顺序的视图中调用该函数ManyToManyField
中的项在保存对象本身后保存。这是必要的,因为我们首先需要该项的主键,然后才能将其链接到另一个模型。谢谢,我认为它是在notify.save()之后保存的。但我会改变主意,直接用实例获取信息