signaux django post_save à la mise à jour
Je suis en train de mettre en place certains post_save récepteurs semblable à la suivante
@receiver(post_save, sender=Game, dispatch_uid='game_updated')
def game_updated(sender, **kwargs):
'''DO SOME STUFF HERE'''
MyPick.objects.filter(week=game.week, team=game.home_team).update(result=home_result)
MyPick.objects.filter(week=game.week, team=game.away_team).update(result=away_result)
@receiver(post_save, sender=MyPick, dispatch_uid='user_pick_updated')
def update_standings(sender, **kwargs):
'''DO STUFF'''
Le premier récepteur est appelé correctement après une mise à jour sur le Jeu de l'objet, cependant les appels à la mise à jour sur le MyPick objet ne sont pas la cause de la deuxième récepteur à être appelé. Le post_save signal de ne pas travailler sur la mise à jour ou j'ai loupé quelque chose d'autre ici?
Grâce
source d'informationauteur user417918 | 2011-09-11
Vous devez vous connecter pour publier un commentaire.
update()
est directement converti en une instruction SQL; il ne demande passave()
sur les instances de modèle, et donc lapre_save
etpost_save
signaux ne sont pas émis. Si vous voulez que vos récepteurs de signaux à être appelé, vous devriez boucle sur le queryset, et pour chaque instance du modèle, faites vos modifications et appelsave()
vous-même.Juste une chose à @Ismali Badawi réponse.
Ce appel
post_save
Ce n'appelle pas
post_save
Dans le code,