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 に設定され、画像が変更されたことを示す場合にのみ画像の再スケーリング ロジックがトリガーされるようになります。変更されました。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3