0
我在我的網站上有一個表單,需要文件上傳和一個文本字段。文件是加密數據,文本文件是解密它的關鍵。代碼:Django表單 - 並非所有數據都發送到服務器
forms.py
class UploadForm(forms.Form):
file = forms.FileField(required=False)
accessCode = forms.CharField(label=False, required=False)
def process(self):
file = "empty"
if self.is_valid():
file = self.cleaned_data.get('file')
access_code = self.cleaned_data.get('accessCode')
print("1. access code = %s" % access_code)
file = file.read()
context = {
'file_data': file,
'access_code': access_code,
}
return context
網站:
<form action="/encryption/decrypt/" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{ upload_form.as_p }}
<input type="submit" value="Submit"/>
</form>
看起來一切正常發送,但是當我只是嘗試打印值,因爲文件的內容,並輸入申請內容是不工作
views.py:
def decrypt(request):
upload_form = UploadForm(files=request.FILES)
if request.method == "POST":
print(request.POST)
post_data = upload_form.process()
access_code = post_data.get('access_code', 'No Access Code')
salt = post_data.get('file_data', 'no file data')
print("ACCESS CODE %s" % access_code)
print("SALT = %s" % salt)
鹽被access_code正確打印爲空,我不知道爲什麼...我猜你不能只包含一種形式的上傳和文本文件,但我不知道如何解決它.. ..
謝謝了很多request.POST修復了這個問題!這工作的第一部分失蹤了!這不是一個錯誤,我實際上是通過forpms.py將其作爲access_code從「context」字典傳遞給views.py。 – mancuss
是的,我意識到,我編輯了我的答案。對於那個很抱歉。 –