django - form - 장고 post



Django Imagefield가 ModelForm을 통해 제대로 작동하지 않습니다. (1)

글쎄, 나는 바보처럼 느껴진다. Django가 업로드 된 파일을 처리 할 수있게하려면 request.FILES 변수를 양식에 전달해야합니다 (이해할 수 있겠습니까?)

내 경우에는 다음과 같은 줄이 생깁니다.

f = AdminEditForm(request.POST, instance = company)

에:

f = AdminEditForm(request.POST, request.FILES, instance = company)

확인해 볼 또 다른 사항 (앞으로 이와 같은 문제가 발생할 경우)은 양식이 여러 부분으로 이루어져 있다는 것입니다. <form> 태그는 다음과 같아야합니다.

<form enctype="multipart/form-data" method="post" action="">

나는 분명히 어리석은 일을하고 있다고 확신하지만, 지금 몇 시간 동안 그것을 알아 내려고 노력해 왔으며 아무것도 나에게 뛰어 오르지 않는다.

ModelForm을 사용하여 모델의 일부 필드를 편집 할 수 있습니다. 2x ImageField, 1x TextField. 양식이 처리되고 TextField가 작동합니다. 두 개의 ImageField가 작동하지 않아 그 이유가 오늘 여기 있습니다.

나는 장고 1.0.2를 사용하고있다.

관련 코드는 다음과 같습니다 (더 많은 정보가 필요한지 물어보십시오. HTML이 포함되어 있지 않기 때문에 잘 작동합니다).

모델:

class Company(models.Model):
    #...
    logo = models.ImageField(upload_to='logos', blank=True)
    intro_pic = models.ImageField(upload_to='intropics', blank=True)
    intro_text = models.TextField(blank=True)

보기 및 양식 :

def admin_edit(request, company_slug):
    company = get_object_or_404(Company, slug = company_slug)

    f = AdminEditForm(instance = company)
    if request.method == 'POST':
        f = AdminEditForm(request.POST, instance = company)
        if f.is_valid():
            print "Processing form"
            print f.cleaned_data['intro_pic']
            f.save()

    return render_to_response('uadmin/edit.html', {'company':company, 'f':f}, RequestContext(request))


class AdminEditForm(ModelForm):
    class Meta:
        model = Company
        fields = ['logo', 'intro_pic', 'intro_text']




django-models