2017-09-02 3 views
-1
I have two models: 
class RateCard(models.Model): 
    name = models.CharField() 
    pricing_type = models.ForeignKey(PriceAttribute) 

and 

class RateCardHistory(models.Model): 
    name = models.CharField() 
    pricing_type = models.ForeignKey(PriceAttribute) 

私がしたいことは、新しいレコードを取得する必要料金表内のすべての操作にある1が最良の方法はこれを達成するのはどの挿入RateCardHistoryはジャンゴでログ/履歴テーブルのレコードを挿入するための最良の方法は何である

Djangoは、Post_saveやRateCardのsaveメソッドを使用してシグナルを送信したり、他の方法を使用してよいでしょう。

+0

から履歴を取得するためにも、関連名を追加したい場合は作成日時を追加します。信号を使用する正当な理由がない場合は、単純に保つ方が良いでしょう。 –

+0

ありがとうございます@あなたが私に非常に便利なリンク/リファレンスを共有していれば – Brijesh

+0

RateCardHistoryでRateCard値を渡すRateCard保存メソッドでRateCardHistoryモデルを開始または呼び出すにはどうすればいいですか? – Brijesh

答えて

0

あなたはRateCard

class RateCard(models.Model): 
    name = models.CharField() 
    pricing_type = models.ForeignKey(PriceAttribute) 

    def save(self, *args, **kwargs): 
     # the call to the super save the record as usual 
     super(RateCard,self).save(*args,**kwargs) 
     # do here what you want... create your new related records 
     new_card_history = RateCardHistory.objects.create(name='the name', pricing_type=self) 

で保存する方法をovverideすることができ、私はあなたがあなたのコードにいくつかの変更を行うことを示唆しています。あなたが作成順にフィールドを取得し、方法がより明確かつ理解しやすいです救う使用RateCard

class RateCardHistory(models.Model): 
    name = models.CharField() 
    created = models.DateTimeField(auto_now_add=True) 
    pricing_type = models.ForeignKey(PriceAttribute, related_name='histories') 
+0

ありがとうございます@karim、私はRateCardHistoryを開始し、フィールド値を辞書new_card_history = RateCardHistory(** data_dict)として渡しましたが、それは保存されていません..私はnew_card_history.save()を試しました。 – Brijesh

関連する問題