2012-02-18 2 views
1

Django 1.3 FormWizard를 사용하여 2 단계로 파일을 업로드하려고합니다 : 1. FileField 만 2. 파일이 올바르게 업로드되고 유효한지 (사용자 지정 유효성 검사 후), 그것을 제공 이름과 설명을 제공합니다.FormWizard (Django 1.3)에서 FileField 사용

는 문서에 따라, 나는 썼다 : 나는 템플릿의 FORM 태그에 다중/폼 데이터를 추가

class CreateCheckWizard(FormWizard): 
    def done(self, request, form_list): 
     return HttpResponseRedirect('/my_checks/') 
    def get_template(self, step): 
     return ['create_check_%s.html' % step, 'create_check_1.html'] 

class CreateCheckForm1(forms.Form): 
    my_file = forms.FileField() 

class CreateCheckForm2(forms.Form): 
    title = forms.CharField(max_length=255) 

: 나는 파일을 업로드하는 경우에도, 그러나 <form enctype="multipart/form-data" action="." method="post">

, I "이 입력란은 필수입니다."라는 오류 메시지가 나타납니다.

양식이 request.FILES 필드를 생략하여 만들어 졌다고 생각됩니다. FormWizard에서 파일을 성공적으로 업로드하기 위해이 동작을 어떻게 변경할 수 있습니까?

편집 : Django 소스 코드를 보면 실제로 파일을 처리하는 것처럼 form(request.POST, request.FILES) 대신 대신 form(request.POST)을 사용하여 양식을 만듭니다. 소스 코드를 변경하지 않고 파일을 업로드하는 방법은 무엇입니까?

답변

5

Django 1.3 양식 마법사에서는 불가능합니다.

중요 제한 : 다음 Django form wizard docs에서 마법사 당신은 그것은 가능하다 마지막

을 제외한 모든 형태의 FileField와 포함되지 않을 수, 페이지 사이에 데이터를 저장하기 위해 HTML 숨겨진 필드를 사용하기 때문에 Django 1.4 양식 마법사 (handling files docs 참조)를 사용하십시오. Django 1.3을 사용하는 경우 separate app으로 새 양식 마법사를 설치할 수 있습니다.

+0

감사합니다. Alasdair. 1.4에서 사용 가능하다는 것을 알았지 만, 1.3을 사용하면서 외부 플러그인을 사용하여 링크를 제공 했으므로 감사합니다! – Thomas

관련 문제