「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > 特定のモデルのシナリオで Django Save メソッドをオーバーライドするにはどうすればよいですか?

特定のモデルのシナリオで Django Save メソッドをオーバーライドするにはどうすればよいですか?

2024 年 11 月 7 日に公開
ブラウズ:892

How to Override Django Save Method for Specific Model Scenarios?

Django: 特定のモデル シナリオの保存メソッドをオーバーライドする

Django モデルの保存メソッドを特定の条件に基づいて変更する必要がある状況では、画像が更新されたか説明のみが変更されたかを判断するなどの基準を設定するには、カスタム アプローチを使用できます。

1 つの手法には、プロパティとフラグの使用が含まれます。

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)

このアプローチにより、'_image_changed' フラグが True に設定され、画像が変更されたことを示す場合にのみ画像の再スケーリング ロジックがトリガーされるようになります。変更されました。

リリースステートメント この記事は次の場所に転載されています: 1729584019 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3