Python 如何在模型保存后设置多个字段?

Python 如何在模型保存后设置多个字段?,python,django,django-models,django-signals,Python,Django,Django Models,Django Signals,我有一个模型,比如说,票。Ticket的Tag字段与其他字段一样多 有人更新了票证的任何字段(比如说明)后,我想将标记字段值设置为现有标记之一 我如何做到这一点?使用Django信号 @receiver(post_save, sender=Ticket) def create_tag(sender, instance, created, **kwargs): if not created: instance.tags.add(Tag.objects.get(id=1))

我有一个模型,比如说,
Ticket
Tag
字段与其他字段一样多

有人更新了
票证
的任何字段(比如
说明
)后,我想将
标记
字段值设置为现有标记之一

我如何做到这一点?

使用Django信号

@receiver(post_save, sender=Ticket)
def create_tag(sender, instance, created, **kwargs):
    if not created:
        instance.tags.add(Tag.objects.get(id=1)) #Add an existing tag
        instance.save()

post_save.connect(create_tag, sender=Ticket)

为什么您建议仅当创建的
True
时才添加标签?标签是票证中的许多字段。。为什么要添加没有票证实例的标记?如果您删除创建的代码,代码也将运行,这只是一种更有组织的方式,我们不能在更新票证时添加标签吗?我相信created是真的如果它是一张新创建的票,请纠正我!我编辑了我的答案。如果调用了.save(),也会调用post_save。无法在.update()上调用。是否有任何方法可以避免在post\U save中调用.save()导致的无限递归?