Django: Mengatasi kaedah simpan untuk senario model tertentu
Dalam situasi di mana kaedah simpan model Django perlu diubah suai berdasarkan tertentu kriteria, seperti menentukan sama ada imej telah dikemas kini atau hanya perihalan diubah, pendekatan tersuai boleh digunakan.
Satu teknik melibatkan penggunaan sifat dan bendera:
<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>
Pendekatan ini memastikan bahawa logik penskalaan semula imej hanya dicetuskan apabila bendera '_image_changed' ditetapkan kepada Benar, menunjukkan bahawa imej telah diubah suai.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Kaedah Simpan Django untuk Senario Model Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!