私は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
。