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']