Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengatasi Kaedah Simpan Django untuk Senario Model Tertentu?

Bagaimana untuk Mengatasi Kaedah Simpan Django untuk Senario Model Tertentu?

Linda Hamilton
Linda Hamiltonasal
2024-10-22 16:28:02151semak imbas

How to Override Django Save Method for Specific Model Scenarios?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn