我创建了一个小表格,用户可以在其中输入他的名字并上传文本文件。现在,在用户单击上传之后,我想在屏幕上显示一条消息,如吐司或类似的东西,说明上传是否成功。我不确定要怎么做,因为提交表单后,用户只是被重定向到另一个页面。
侧面说明:我使用的是Django 1.7(我知道它很旧,但这是我必须与他人合作的项目)
这是我的html代码段,用户在其中填充字段:
<form action="{{ request.build_absolute_uri }}upload/" method="POST" enctype="multipart/form-data">
<input id="Name" name="Name" type="text" placeholder="Name" style="width:100%">
<br>
<input type="file" name="file"/>
<br />
<input type="submit" value="Upload File" />
</form>
这是我的views.py:
def upload(request):
if request.method == 'POST':
name = request.POST.get('name')
handle_uploaded_file(request.FILES['file'], str(request.FILES['file']), name)
return HttpResponse("Successful")
def handle_uploaded_file(file, filename, name):
# if not os.path.exists('upload/'):
# os.mkdir('upload/')
fileContent = ""
with open('upload/' + filename, 'wb+') as destination:
for chunk in file.chunks():
fileContent += chunk
# destination.write(chunk)
currentDT = datetime.datetime.now()
policy = Policy.create(name, currentDT, fileContent);
policy.save()
答案 0 :(得分:2)
您需要的是django messages framework
您只需
from django.contrib import messages
messages.add_message(request, messages.INFO, 'Form submitted successfully.')
在您的模板中
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
但是不要忘记在MIDDLEWARE和存储后端中进行设置