최근에 저는 Python과 Django를 실험하기 시작했습니다. 나는 그것을 좋아하지 만, 이미 많은 것을 배웠지 만 여전히 갈 길이 멀다.변수 필드 이름이있는 Django-for-loop
나는 5 개의 이미지 필드를 포함하는 모델을 만들었다. 모델 옆에 데이터를 입력하고 저장하는 양식을 만들었습니다. 여태까지는 그런대로 잘됐다.
- 업로드 할 새 이미지
- 데이터베이스
에서 '오래된'이미지를 삭제 나는 아래의 코드를 작성 : 은 이제 의미하는 업로드 한 이미지 '편집'의 또 다른 양식을 작성하려면
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: pass # when new photo then we do nothing, normal case
form.save()
하지만 다음과 같은 문제로 고민하고 있습니다 :
그 한 이미지의 작업을 수행5 개의 이미지 필드를 업데이트하기 위해이 코드를 어떻게 다시 작성할 수 있습니까? 최악의 경우 5 개의 이미지 필드를 모두 편집 할 수 있기 때문입니다. 나는 'for loop'로 시도했지만 결코 성공하지 못한다. 예를 들어 :
image_list = [image_1, image_2, image_3, image_4, image_5] if form.is_valid(): for image in image_list: form_image = form.cleaned_data[image] try: details = Model.objects.get(pk=pk) if details.image != form_image: details.image.delete(save=False) except: pass # when new photo then we do nothing, normal case form.save()
- 논리의이 작품을 쓰기보다 지능적인 방법이 있습니다. 이 코드로 가지고있는 문제는 이미지의 이름을 검사한다는 것입니다. 그리고 같은 이름의 이미지가 여러 개있을 때 아마 잘못 될 것입니다 ...
누군가가 피드백을주고 올바른 방향으로 나를 다시 가리켜 주길 바랍니다.
감사합니다.
친절 감사는
안녕을 사용해야
을 동적으로 변수 조회로 그 문자열 이름을 사용하려면를 명명 문제는 해결 방법 :이 이름 바꾸기 기술을 사용하여 이미지 이름을 고유하게 만들 수 있습니다. [Django FileField with upload_to runtime at runtime] (http://stackoverflow.com/questions/1190697/django-filefield-with-upload-to-determined-at -실행 시간). 그러나 여전히 첫 번째 요점은 : 서로 다른 이미지를 반복하는 방법? 그리고이 코드 조각은 '지능적인'의미입니다. 이미지 업로드를 처리하는 가장 좋은 방법입니까? 감사! –