データベースのクエリを保存するモデルのカウンタを更新しようとしています。ですから、picture_countフィールドを持つ記事モデルがあります。写真は記事とともにm2mです。Django保存前に値を更新する
すべての記事を(Django Adminを使用して)記事に追加または削除するときに、記事picture_countを更新したいと思います。しかし、私はそれについて間違っているようだ。
私は自分の記事モデルのsaveメソッドを単に上書きできると思っていました。しかし、これは機能しません。
def save(self, *args, **kwargs):
self.picCount = self.pictures.count()
super(Articles, self).save(*args, **kwargs) # Call the "real" save() method.
問題はm2mがまだ更新されていないことです。私はそれを呼び出した後(再度saveを呼び出す)、オブジェクトは古くなっています。オブジェクトをリフレッシュしてもう一度保存するか、この数を更新する場所がありますか?
あなたはこれをやっていますか?カスタムフォームで?関連する写真レコードの数である整数だけを返すモデルに属性を添付できますか? – drsnark
これは一般的には良い考えではありません。あなたがそれを必要とするとき、例えば集計を介してその数を計算するほうがずっと良いです。データベースはこの種のことに本当に良いです。 –