2016-08-07 1 views
0

다른 사람들은 전에도이 문제를 가지고 있었지만 모두 파일 관련이었습니다. 필자가 사람들이 제안한 모든 것을 수행하는 동안 필자가 채운 텍스트 필드조차도 "이 필드는 필수"라는 오류를 반환합니다.이채워졌지만 Django는 "이 필드가 필요합니다"라고 말합니다 (텍스트 필드조차도)

class MainForm(forms.Form): 
    name = forms.CharField() 
    subject = forms.CharField() 
    text = forms.CharField(widget=forms.Textarea) 
    file = forms.FileField() 
    password = forms.CharField() 

def mainpage(request): 
    if request.method == 'POST': 
     form = MainForm(request.FILES or None, request.POST or None) 
     if form.is_valid(): 
      handle_uploaded_file(request.FILES['file']) 
      return HttpResponse('Ok') 


    else: 
     form = MainForm() 
    return render(request, "main.html", {'form': form}) 

def handle_uploaded_file(file): 
    name = file.name 

    with open(os.path.join("static\img", "{0}".format(name)), 'wb+') as destination: 
     for chunk in file.chunks(): 
      destination.write(chunk) 

템플릿

조회수 : 내가하는 모든 것을 설정할 때 비 필수 주목해야한다

{% load staticfiles %} 
<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html"> 
<head> 
    <meta charset="UTF-8"> 
    <title>{{ siteTitle }}</title> 
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/main.css"> 
</head> 
<body> 
{% include 'header.html' %} 

<form enctype="multipart/form-data" method="post"> 
    {% csrf_token %} 
    <table> 
    <ul> 
     {{ form.as_table }} 
    </ul> 

    </table> 
    <input type="submit" value="Submit" /> 
</form> 


</body> 
</html> 

, 그것은 단지를 반환 내 코드에서보세요 빈 양식.

관대 한 도움에 감사드립니다.

+0

에 오신 것을 환영합니다! 보여주고 싶은 행동을 보여주는 것과 관련이없는 것을 제거하여 예제를 더 간단하게 만드십시오 (https://stackoverflow.com/help/mcve). 반대로, 예제를 실행할 때 우리가 기대해야 할 행동을 명시 적으로 보여주십시오. – bignose

답변

2

양식에서 인수의 순서가 잘못 - request.POST가 먼저 와야 :

# request.POST must come before request.FILES. 
form = MainForm(request.POST, request.FILES) 

는 또한, 당신은 or None 필요하지 않습니다. POSTFILES은 항상 비어 있더라도 request object에 있습니다.

당신은 아마 또한 표에 그 ul 태그를 원하지 않는다 :

<table> 
    {{ form.as_table }} 
</table> 
+0

마침내 일한 사람이 고마워. – Chubak

관련 문제