Bagaimana untuk Mengatasi Kaedah Simpan Django untuk Senario Model Tertentu?

Linda Hamilton
Lepaskan: 2024-10-22 16:28:02
asal
150 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!