경우에 따라 모델에 대해서만 Django 재정의 저장
문제:
저장할 때 Django 모델에서는 새 이미지가 추가되면 이미지 크기를 조정해야 합니다. 그러나 모델 설명만 업데이트된 경우 크기 조정을 건너뛰고 싶습니다.
해결책:
이를 달성하려면 setter 역할을 하는 사용자 정의 속성을 생성할 수 있습니다. 이미지 필드와 이미지가 변경되었는지 여부를 나타내는 플래그입니다.
<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.image_small = SimpleUploadedFile(name, small_pic) super(Model, self).save(*args, **kwargs)</code>
이 솔루션은 이미지가 변경될 때만 크기가 조정되고, 설명만 업데이트될 때는 크기 조정을 방지합니다. 또한 이 접근 방식은 ModelForm 및 contrib.admin과 같은 Django의 유사 자동 도구와의 호환성을 유지합니다.
위 내용은 선택적 모델 업데이트를 위해 Django의 저장 방법을 재정의하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!