私は2つのモデルを持っています。1 つは MainModel と呼ばれ、もう 1 つは HistoricMainModel と呼ばれます。データが MainModel に挿入されるたびに、HistoricMainModel の行を自動的に INSERT したいと考えています。Djangoでこれを行う最善/正しい方法は何ですか?
よろしくお願いします、
私は2つのモデルを持っています。1 つは MainModel と呼ばれ、もう 1 つは HistoricMainModel と呼ばれます。データが MainModel に挿入されるたびに、HistoricMainModel の行を自動的に INSERT したいと考えています。Djangoでこれを行う最善/正しい方法は何ですか?
よろしくお願いします、
すでにカスタムsave().-magic を使用している場合は、post_save()シグナルまたはを使用することをお勧めしpre_save()ます。
あなたのmodels.py
@receiver(pre_save, sender=MainModel)
def save_a_historicmodel(sender, **kwargs):
#do your save historicmodel logic here
また
def save_a_historicmodel(sender, instance, created, **kwargs):
print "Post save was triggered! Instance:", instance
signals.post_save.connect(save_a_historicmodel, sender=MainModel)
これは、保存されるたびにMainModelこのシグナルがトリガーされるように機能します。
save「実際の」メソッドを呼び出す前に、HistoricMainModel オブジェクトを作成して挿入するように MainModel モデルのメソッドを書き直しますsave。