2012-03-23 5 views
1

モデルの属性make_initial_plan、make_default_planがモデル内で安全に設定されているかどうかをチェックし、そうであれば他のすべてのモデルインスタンスのすべての属性を設定解除しますが、彼らはクラスメソッドではありませんので、tは信号が予めセルフパラメータをdjangoコールバックに渡す

+0

送信者とインスタンスは、LogEntry Objecttのものですか? LogEntryオブジェクト – PuercoPop

答えて

4

に役立つ、バック

@receiver(pre_save) 
def desactivar_default_o_initial(sender, instance, **kwargs): 
    if self.make_initial_plan == True: 
     for item in Plan.objects.all(): 
      item.make_initial_plan = False 
      item.save(firstTimePass=False) 
    if self.make_default_plan == True: 
     for item in Plan.objects.all(): 
      item.make_default_plan = False 
      item.save(firstTimePass=False) 

コール任意のアイデアに自己パラメータを渡す方法を知っている何selfはありません。あなたも

(あなたがここで必要なものですすなわちそれ)オブジェクト自身のために信号を送信するクラスを取得するためのsender、およびinstanceを使用する必要があり、私はあなたがコネクタに信号を送るsender引数を提供すべきだと思います。現在の設定ではハンドラはこれまでどんなdjangoモデルにも使用されます。

関連する問題