2017-01-27 6 views
0

나는 모델이ModelForm을 사용하면 수동으로 업로드 된 파일을 처리해야합니까?</p> <pre><code>class Dialogue(models.Model): ... avatar = models.ImageField(upload_to=conference_directory_path, blank=True) ... </code></pre> <p>그리고 그것을 위해 ModelForm :

class CreateConferenceForm(forms.ModelForm): 
    class Meta: 
     model = Dialogue 
     fields = ['name', 'participants', 'avatar'] 
    ... 

내 질문은 핸들이 같은 아바타를 업로드 내가 특별한 기능을해야 할 것입니다 :

def handle_uploaded_file(file): 
    with open(some_file_path, 'wb+') as destination: 
     for chink in file.chunks(): 
      destination.write(chunk) 

아니면 두려움없이 ModelForm의 save 메소드를 사용할 수 있습니까? 그리고 내가 할 수 없다면 -이 기능을 위해 더 좋은 장소는 어디입니까?보기 또는 양식입니까? 그리고 핸들 함수를 사용하여 아바타를 어떻게 절약 할 수 있을까요? 처음에는 핸들 함수를 사용하여 업로드 된 파일을 처리 한 다음이 업로드 된 파일을 imagefield에 어떻게 추가 할 수 있습니까?

답변

0

양식에 method="post"을 사용하고 양식에 enctype="multipart/form-data"을 설정하면 ModelForm에서 자동으로 처리합니다. 모델 필드에 null=True을 설정해야 할 수도 있습니다. 그렇지 않으면 이미지를 제공하지 않을 때 인스턴스가 저장되지 않습니다.

+0

감사합니다. 따라서 일반적인 형식에서는 handle 함수를 사용해야합니다. 그렇다면 평소 양식에 대한 동일한 질문에 대답 해주십시오. –

+0

@AlexanderShpindler 여기 있습니다 : http://stackoverflow.com/questions/5871730/need-a-minimal-django-file-upload-example?rq = 1 –