내 프로젝트에서 Imagekit을 사용하여 이미지를 처리하는 모델이 있습니다. 새로운 이미지가 예전 제거해야로드 고유 한 이름 Imagekit - 원본 이미지 삭제 후 캐시 이미지가 삭제되지 않았습니다.
- 이름 바꾸기 이미지와 썸네일로 갱신한다 : 나는 이미지를 저장할 때 나는 다음과 같은 요구 사항이 새로운 이미지).
모델 :
def generate_cache_filename(instance, path, specname, extension): extension = '.jpg' return 'cache/images_upload/%s_%s%s' % (instance.pk, specname, extension) def generate_image_filename_1(instance, filename): filename = '1' extension = '.jpg' return 'images_upload/%s_%s%s' % (instance.pk, filename, extension) class Model(models.Model): name = models.CharField(max_length=40) image_1 = ProcessedImageField([Adjust(contrast=1.2, sharpness=1.1), ResizeToFill(500, 370)], upload_to=generate_image_filename_1, format='JPEG', options={'quality': 90}) thumbnail_1 = ImageSpec([Adjust(contrast=1.2, sharpness=1.1), ResizeToFill(83, 78)], image_field='image_1', cache_to=generate_cache_filename, format='JPEG', options={'quality': 90})
양식 (이 새에 의해 교체 될 때 이미지를 삭제하기 위해) :
if form.is_valid(): form_image = form.cleaned_data['image_1'] try: details = Model.objects.get(pk=pk) if details.image_1 != form_image: details.image_1.delete(save=False) except Model.DoesNotExist: pass form.save()
, 나는 다음 코드를 사용하려면이 작업을 수행하려면
이미지의 이름을 바꾸고 image_1
(= 새 이미지로드 및 오래된 이미지 삭제) 부분을 바꾸는 부분은 정상적으로 작동합니다. 그러나 어떤 이유로 캐시의 thumbnail_1
이 새로 고침되지 않습니다 (= 여전히 이전 이미지의 미리보기 이미지 임).
폼의 삭제 코드와 관련이 있다고 생각합니다. 그러나이를 해결하는 이유와 방법을 파악할 수 없습니다. 제안이있는 누군가?
업데이트 1 : 또한 '이름 바꾸기'와 관련이 있습니다. 몇 가지 추가 테스트를 수행했습니다. image_1
파일의 이름을 변경하지 않으면 모든 것이 잘 작동하고 (미리보기 이미지 새로 고침). 그러나 동일한 이름의 다른 이미지를로드하면 동일한 문제가 발생합니다. image_1
은 업데이트되지만 thumbnail_1
은 여전히 이전 이미지의 미리보기 이미지입니다.
업데이트 2 : 일부 더 많은 테스트를했고, 같은 파일 이름으로 새 이미지를 업로드 할 때, 나는 확실히 try
에 if statement
를 입력합니다. 따라서 오래된 이미지가 삭제됩니다. Imagekit의 문서에 따르면 미리보기 이미지도 삭제해야합니다. 그러나 이것은 사실이 아닙니다.
감사합니다.
업데이트 : 좀 더 테스트를했고, 같은 파일 이름으로 새 이미지를 업로드 할 때, 나는 확실히 try''에서'경우 statement'를 입력합니다. 따라서 오래된 이미지가 삭제됩니다. Imagekit의 문서에 따르면 미리보기 이미지도 삭제해야합니다. 그러나 이것은 사실이 아닙니다. –