私は見出しと作者のメールアドレスを変更しようとDjangoは外部キーのデータを変更して保存し
a=Article.objects.filter(id=1)
a=a[0]
言う条の目的に今
class Reporter(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField()
class Article(models.Model):
headline = models.CharField(max_length=100)
pub_date = models.DateField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
のような二つのモデルをすることができますしている人この記事を書いています
a.heagline = "Saving foreign key does not work"
a.reporter.email = "[email protected]"
a.save()
これはArticleオブジェクトを保存しますが、Reporterは変更しません。
私は明示的にレポーターオブジェクトへの変更を確認するために
a.reporter.save()
を行う必要があります。これはまた、私はちょうど方法
で予期しない動作を導入していないので、私はあなたがカスタムメソッドを作成することをおすすめ
メソッド –
を保存する直接的な方法がありますが、ありませんあなたの子モデルの 'save'メソッドを常にオーバーライドすることができます。 – Selcuk
おそらく子供のsaveメソッドをオーバーライドしてこれを行うことはできますが、それは無駄であり、ある時点で問題が発生する可能性があります。 *なぜ*あなたはこれをしたいですか? – Sayse