2009-09-24 4 views
1

업데이트 : 아래 포스터 덕분에 공식 문서가 최신 버전임을 분명히 알 수 있습니다. Google에서 나타나는 다른 페이지를 훑어 보지 말고 신중하게 읽는 것이 가장 좋습니다.Django에서 파일 업로드에 대한 최신 (2009 년 9 월) 예제를 아는 사람이 있습니까?


내가 장고에 파일을 업로드,하지만 그들은 오래된 것 말하는 사람을 읽는 예와 조각을 발견 유지한다.

다음은 웹을 둘러싼 여러 가지 기본적인 혼란입니다.

수동으로 파일 데이터를 직접 저장해야합니까 (예 : 파일을 열고 this example과 같이 파일을 열어야합니까?) 파일 유형 필드가있는 모델을 저장하면 Django가 자동으로 파일을 저장합니까?

모델의이 필드에 을 복사하려면 수동으로 파일 데이터를 가져와야합니까? 내 말은, 그 요청을 이해합니다. 파일은 사용하지 않습니다.) 그러나 사용자 정의 HTML 양식 (< 입력 유형 = "파일"태그 사용)에서 파일을 업로드하면이 필드에 대한 cleaned_data는 없음입니다. request.FILES 사전에는 여전히 데이터가 포함 된 것 같습니다. 그렇다면 파일 데이터를 선택하여 모델 필드에 입력하는 방법은 무엇입니까?

환호

답변

3

(즉, 내가 할 의미하고있어?의 경우) docs이에 대한 아주 좋은, 그리고 최신입니다.

기본 파일 업로드의 경우 양식에 FileField을 사용하면됩니다. 이 양식에 request.POSTrequest.FILES을 입력하면 처리됩니다. 물론, 내가 말할 수있는 한 request.FILES은 더 이상 사용되지 않습니다.

파일 업로드시 더 많은 멋진 작업을 원할 경우 즉, 기본값 인 FileField에서 벗어날 필요가있을 때입니다. 그러나 다시 documentation에서 다루어집니다.

또 하나의 일반적인 실수는 enctype="multipart/form-data"을 잊어 버리는 것입니다. 이 결과를 포함하지 않으면 request.FILES이 비어 있습니다.

+0

+1, 설명서는 폼을 인스턴스화 할 때 request.FILES를 전달해야한다는 것이 분명합니다. OP가 비추천적이라고 생각한 곳을 상상할 수는 없습니다. 덕분에 –

+0

. 네, 요청을 놓쳤습니다. 파일은 공식 문서 예제에서 양식 생성자로 전달됩니다. 나는 그것이 명시 적으로 액세스되는 것을 보여주고 있던 다른 사이트를 읽고 있었고 이것은 구식이라고 말했습니다. 실제로 – interstar

+0

두 번째 생각에서 파일은 아무 곳에도 저장되지 않습니다. 그래서 나는 이것을 수동으로해야만합니까 ?? – interstar