[PYTHON] 복수 파일 필드가있는 장고 양식
PYTHON복수 파일 필드가있는 장고 양식
어떻게 장고에서 여러 파일 필드를 처리합니까. 예를 들어 양식 필드가 하나만있는 경우 요청을 전달합니다. 파일 [ 'file']을 처리 함수로 전달합니다. 그러나 더 많은 파일이있을 때 어떻게 갈 수 있습니까?
해결법
-
==============================
1.나는 파티에 늦었지만, 잠시 동안 이것을 알아 내려고 노력했고 결국 해결책을 얻었습니다. 여기에 사용 된 코드를 살펴보십시오. https://code.djangoproject.com/ticket/12446
나는 파티에 늦었지만, 잠시 동안 이것을 알아 내려고 노력했고 결국 해결책을 얻었습니다. 여기에 사용 된 코드를 살펴보십시오. https://code.djangoproject.com/ticket/12446
getlist를 사용하여 다중 부분 값에 액세스 할 수 있습니다. 내 HTML 양식은 다음과 같습니다.
<form enctype="multipart/form-data" action="" method="post"> <input type="file" name="myfiles" multiple> <input type="submit" name="upload" value="Upload"> </form>
내 django 코드는 다음과 같이 처리 할 것이다.
for afile in request.FILES.getlist('myfiles'): # do something with afile
이것을 올바르게 처리 할 양식 필드 / 위젯을 작성하는 것이 다음 단계입니다. 나는 여전히 장고를 처음 사용하기 때문에 처음에는 장고를 배우고있다.
-
==============================
2.request.FILES.get ( 'filename', None)은 다음과 같이 form-named 필드의 존재에 응답합니다 :
request.FILES.get ( 'filename', None)은 다음과 같이 form-named 필드의 존재에 응답합니다 :
<input type="file" name="filename"></input>
그런 분야가 두 개인 경우 :
<input type="file" name="file1"></input> <input type="file" name="file2"></input>
그런 다음 request.FILES.get ( 'file1', None) 및 request.FILES.get ( 'file2', None)은 각각 파일을 제공해야합니다.
그 이유는 멀티 파트 마임입니다. 세 부분 (form data, file1, file2)은 업로드되어야하고 Django의 UploadFileHandler는 이것을 분리하여 request.POST와 request.FILES로 분리합니다.
-
==============================
3.다음은이 답변에 대한 좋은 링크입니다. https://github.com/Chive/django-multiupload. 그러나 ModelForm을 사용하지 않아서 몇 가지 사항을 변경해야했습니다. 보기에서 나는 아래에 코드를 작성하고 디스크에 파일을 저장했습니다.
다음은이 답변에 대한 좋은 링크입니다. https://github.com/Chive/django-multiupload. 그러나 ModelForm을 사용하지 않아서 몇 가지 사항을 변경해야했습니다. 보기에서 나는 아래에 코드를 작성하고 디스크에 파일을 저장했습니다.
for each in form.cleaned_data['attachments']: handle_uploaded_file(each) def uploadMyWork(request): from .forms import UploadFileForm, handle_uploaded_file print 'in uploadMyWork' if request.method == 'GET': print 'in uploadMyWork : GET' form = UploadFileForm() else: form = UploadFileForm(request.POST, request.FILES) print 'in uploadMyWork : POST' #for each in form.cleaned_data['attachments']: # handle_uploaded_file(each) #return render(request, 'stitchme/uploadMyWork.html', {'msg': "file uploaded successfully"}) if form.is_valid(): print 'inside form valid' for each in form.cleaned_data['attachments']: handle_uploaded_file(each) return render(request, 'stitchme/uploadMyWork.html', {'msg': "file uploaded successfully"}) print 'returning to uploadmywork' return render(request, 'stitchme/uploadMyWork.html', {'form': form, 'msg':'hi'})
from https://stackoverflow.com/questions/5742119/django-form-with-multiple-file-fields by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 올바른 Python 설치로 부주의 한 텍스트 2 패키지 지시하기 (0) | 2018.11.03 |
---|---|
[PYTHON] Python : 단어의 철자가 올바른지 확인 [닫힘] (0) | 2018.11.03 |
[PYTHON] 파이썬에서의 프로세스 당 CPU 사용량 (0) | 2018.11.02 |
[PYTHON] 클래스의 메소드에 파이썬 장식자를 적용하기 (0) | 2018.11.02 |
[PYTHON] Python으로 Selenium에서 프로그래밍 방식으로 파이어 폭스 헤드리스를 만드는 방법은 무엇입니까? (0) | 2018.11.02 |