매우 간단한 양식을 사용하여 파일을 새 클래스 인스턴스에 업로드하려고합니다. request.FILES
에 두 파일을 모두 갖길 기대하지만 비어 있습니다. 나는 번들 된 dev 서버에있다.빈 Request.FILES with Django 업로드 양식
여기에 붙어서 모든 관련 질문을 수행했습니다.
wayfinder_map.media_file = request.FILES['media_file']
는
MultiValueDictKeyError: "Key 'media_file' not found in MultiValueDict: {}>"
모델
class WayfinderMap(models.Model):
""" Way-finding Map Config"""
media_file = models.FileField(upload_to="maps", null=True, blank=True)
wall_file = models.FileField(upload_to="maps_data", null=True, blank=True)
뷰를 생성
@login_required
def create_map(request, form_class=WayfinderMapForm, template_name="wayfinder/map/create.html"):
wayfinder_map_form = form_class(request.user, request.POST or None, request.FILES)
if wayfinder_map_form.is_valid():
wayfinder_map = wayfinder_map_form.save(commit=False)
wayfinder_map.media_file = request.FILES['media_file']
wayfinder_map.data_file = request.FILES['data_file']
wayfinder_map.creator = request.user
wayfinder_map.save()
return HttpResponseRedirect(wayfinder_map.get_absolute_url())
return render_to_response(template_name, {
"wayfinder_map_form": wayfinder_map_form,
}, context_instance=RequestContext(request))
템플릿 나는 당신의 문제가 먼저 요청을 확인하지 않고 폼에 데이터를 할당 거짓말 같아요
<form enctype="multipart/form-data" class="uniForm" id="wayfinder_map_form" method="POST" action="">
<fieldset class="inlineLabels">
{{ wayfinder_map_form|as_uni_form }}
<div class="form_block">
<input type="hidden" name="action" value="create" />
<input type="submit" value="{% trans 'create' %}"/>
</div>
</fieldset>
</form>
나는이 비슷한 질문에 대한 답이 당신을 도울 것이라고 생각합니다 : http://stackoverflow.com/q/5895588/1037459 –