在Django中成功提交表单后通过JavaScript/jQuery发送通知
我刚开始学习JavaScript和相关的库与框架,现在在努力实现一个功能,就是在用户成功提交表单后给他们发送通知。我有一个项目是用Django开发的,这个项目里有一个图片上传的表单。下面是这个图片上传表单的views.py代码...
from django.shortcuts import render_to_response,RequestContext
from photo.models import Photo
from django.contrib.auth.decorators import login_required
from myprofile.forms import DocumentForm
from django.contrib.auth import authenticate, login, logout, REDIRECT_FIELD_NAME
def UserImageUpload(request):
if request.method == 'POST':
form = DocumentForm(request.POST,request.FILES)
if form.is_valid():
newdoc = Photo(photo = request.FILES['photo'],user = request.user)
newdoc.save()
else:
form = DocumentForm()
uploaded_image = Photo.objects.all()
return render_to_response('myprofile/user_image_upload.html',{'uploaded_image':uploaded_image,'form':form},context_instance = RequestContext(request))
这是forms.py的代码...
from django import forms
class DocumentForm(forms.Form):
photo = forms.ImageField(
label='Select a file'
)
还有这个模板文件...(upload_image.html)
{% extends 'base.html'%}
{% block title%}User Image Upload {% endblock %}
{%block content%}
<div class="container" style="margin-top:5%">
<div class="col-md-4 col-md-offset-4">
<div class="well">
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<p>{{ form.non_field_errors }}</p>
<p>{{ form.photo.label_tag }} {{ form.photo.help_text }}</p>
<p>
{{ form.photo.errors }}
{{ form.photo }}
</p>
<p><input type="submit" value="Upload" class="btn btn-success" /></p>
</form>
</div>
</div>
</div>
{%endblock%}
现在我想在用户成功上传图片后给他们发送通知,或者说是在成功提交表单后给他们提示。我该如何用JavaScript或jQuery来实现这个功能呢?
1 个回答
0
通常情况下,在表单成功提交后,你会想要进行重定向,也就是说:
if form.is_valid():
newdoc = Photo(photo = request.FILES['photo'],user = request.user)
newdoc.save()
return http.HttpResponseRedirect('....')
如果你是在做类似于 Ajax 的表单提交,那么你需要返回一些 Ajax 调用能够理解为成功的内容,比如:
if form.is_valid():
newdoc = Photo(photo = request.FILES['photo'],user = request.user)
newdoc.save()
response = http.HttpResponse(json.dumps({"status": 'ok'}))
response["Content-Type"] = 'application/json'
return response