Django : remplacement de la méthode de sauvegarde pour des scénarios de modèle spécifiques
Dans les situations où la méthode de sauvegarde d'un modèle Django doit être modifiée en fonction de certains critères, tels que déterminer si une image a été mise à jour ou si seule la description a été modifiée, une approche personnalisée peut être utilisée.
Une technique consiste à utiliser une propriété et un indicateur :
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)
Cette approche garantit que la logique de redimensionnement de l'image n'est déclenchée que lorsque l'indicateur '_image_changed' est défini sur True, indiquant que l'image a été modifié.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3