ホームページ >バックエンド開発 >Python チュートリアル >特定のモデルのシナリオで Django Save メソッドをオーバーライドするにはどうすればよいですか?
Django: 特定のモデル シナリオの保存メソッドをオーバーライドする
特定の条件に基づいて Django モデルの保存メソッドを変更する必要がある状況では、画像が更新されたか、説明のみが変更されたかを判断するなどの基準を設定するには、カスタム アプローチを使用できます。
1 つの手法には、プロパティとフラグの使用が含まれます。
<code class="python">class Model(model.Model): _image = models.ImageField(upload_to='folder') thumb = models.ImageField(upload_to='folder') description = models.CharField() def set_image(self, val): self._image = val self._image_changed = True def get_image(self): return self._image image = property(get_image, set_image) def save(self, *args, **kwargs): if getattr(self, '_image_changed', True): # Logic for image rescaling super(Model, self).save(*args, **kwargs)</code>
このアプローチ画像の再スケーリング ロジックが、画像が変更されたことを示す「_image_changed」フラグが True に設定されている場合にのみトリガーされるようにします。
以上が特定のモデルのシナリオで Django Save メソッドをオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。