특정 사례에 대한 Django 모델 저장 재정의
Django에서 모델의 save() 메서드는 데이터를 데이터베이스에 유지하는 역할을 합니다. 그러나 특정 기준에 따라 이 동작을 수정해야 하는 시나리오가 있습니다. 그러한 사례 중 하나는 이미지가 새로 추가되거나 업데이트될 때만 이미지 크기를 조정하는 것입니다.
문제:
이미지, 썸네일 및 설명 필드가 있는 모델에서 메인 이미지(이미지)를 생성하거나 수정하는 경우에만 썸네일(thumb)의 크기를 조정하여 저장해야 합니다. 설명 필드를 업데이트해도 이미지 크기 조정이 실행되어서는 안 됩니다.
해결책:
이를 달성하려면 확인하는 사용자 정의 속성을 사용하여 기본 save() 메서드를 재정의할 수 있습니다. 이미지 필드의 변경 사항:
<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): small = rescale_image(self.image, width=100, height=100) self.thumb = SimpleUploadedFile(name, small_pic) super(Model, self).save(*args, **kwargs)</code>
작동 방식:
위 내용은 이미지 크기 조정을 위해 Django 모델 저장을 재정의하는 경우의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!