我有一个仪表板,可让您上传文件并显示您上传的文件。当您提交上传时,它会将您重定向回仪表板。问题是我想显示一条成功消息,说明您的文件已上传,但我无法弄清楚如何实现这一点,因为我只是将它们重定向到同一页面。以下是观点:
@login_required(login_url='/dashboard-login/')
def dashboard(request):
current_user = request.user
current_client = request.user.client
files = ClientUploads.objects.filter(client=current_client)
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
new_file = ClientUploads(client=current_client, file_upload = request.FILES['file_upload'])
new_file.save()
return HttpResponsePermanentRedirect('/dashboard/')
else:
form = UploadFileForm()
data = {'form': form, 'client': current_client, 'files': files}
return render_to_response('dashboard.html', data, context_instance=RequestContext(request))
我知道render_to_response已被弃用我会尽快将其切换出来。但是,如何显示成功消息?我不确定如何使用AJAX提交此消息,因此我不知道如何显示消息,因为它在您提交文件后刷新页面。
你能提供的任何解决方案或建议都会有所帮助。一个小例子可以帮助我解决这个问题。
我还想要包含一个进度条,我的研究需要一个带有进度条的自定义上传处理程序。我是否能够以相同的方式显示成功消息并添加进度条?如果是这样,任何人都可以提供一个这样的例子吗?
感谢您的任何意见,我现在已经被困在这里了。
答案 0 :(得分:1)
在views.py
下的if request.method ==POST
中,您可以添加messages.success(request, 'File upload successful')
,使其类似于:
def dashboard(request):
current_user = request.user
current_client = request.user.client
files = ClientUploads.objects.filter(client=current_client)
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
new_file = ClientUploads(client=current_client, file_upload = req uest.FILES['file_upload'])
new_file.save()
messages.success(request, 'File upload successful')
然后,在您的模板中:
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
那应该做你想要的!