特定のモデルを保存した後、いくつかのデータベース テーブルを更新する必要があります。@receiver(post_save
これにはデコレータを使用しました。ただし、このデコレータ関数では、値はまだデータベースに保存されていません。1対多の関係がありますが、を使用して保存されている現在のインスタンスを取得すると、kwargs['instance']
子オブジェクトがありません。しかし、シェルからチェックしたときに保存した後、子オブジェクトがあります。以下は私が使用しているコードです:
@receiver(post_save, sender=Test)
def do_something(sender, **kwargs):
test = kwargs['instance']
users = User.objects.filter(tags__in=test.tags.values_list('id',flat=True))
for user in users:
other_model = OtherModel(user=user, test=test, is_new=True)
other_model.save()