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
是的,我意识到,我编辑了我的答案。对于那个很抱歉。 –