선택적 크기 조정을 위해 Django 모델의 저장 방법 재정의
질문:
Django 모델의 저장 방법을 어떻게 할 수 있나요? 이미지가 추가되거나 업데이트될 때만 이미지 크기를 조정하고 다른 필드를 편집할 때는 크기를 조정하지 않도록 저장 메소드를 재정의해야 합니까?
문제:
제공된 코드가 이미지 크기를 조정합니다. 설명만 업데이트되더라도 모델이 저장될 때마다. 이는 비효율적이고 불필요합니다.
해결책:
제안된 해결 방법은 이미지 필드에 대한 setter 및 getter 역할을 하는 속성을 생성하는 것입니다. 이를 통해 이미지 필드의 변경 사항을 추적하고 수정된 경우에만 크기를 조정할 수 있습니다.
<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 # Or put whole logic in here small = rescale_image(self.image, width=100, height=100) self.image_small = SimpleUploadedFile(name, small_pic) 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.image_small = SimpleUploadedFile(name, small_pic) super(Model, self).save(*args, **kwargs)</code>
이 접근 방식을 사용하면 이미지가 추가되거나 업데이트될 때만 크기 조정이 발생하므로 원래 질문에서 제기된 문제를 효과적으로 해결할 수 있습니다. .
위 내용은 선택적 이미지 크기 조정을 위해 Django 모델의 저장 방법을 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!