Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 许多通知都不起作用_Django - Fatal编程技术网

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()之后保存的。但我会改变主意,直接用实例获取信息