Javascript Django+;在ajax中保存(新闻稿)表单

Javascript Django+;在ajax中保存(新闻稿)表单,javascript,jquery,ajax,django,newsletter,Javascript,Jquery,Ajax,Django,Newsletter,我想用django+ajax制作一个时事通讯系统 事实上,我有: #newsletter/urls.py from django.conf.urls import patterns, include, url urlpatterns = patterns('newsletter.views', url(r'^subscribe/', 'subscribe', name='newsletter_subscribe'), ) #views.py from django.shortcuts

我想用django+ajax制作一个时事通讯系统 事实上,我有:

#newsletter/urls.py
from django.conf.urls import patterns, include, url

urlpatterns = patterns('newsletter.views',
   url(r'^subscribe/', 'subscribe', name='newsletter_subscribe'),
)

#views.py
from django.shortcuts import render_to_response
from newsletter.models import Member


def subscribe(request):
    fullname = request.POST.get('fullname', None)
    email =  request.POST.get('email', None)
    very_exist = Member.objects.all()
    if email in very_exist:
        error = "Votre adresse email est déjà inscrite à la newsletter."

    new_subscriber = Member(fullname=fullname, email=email)
    new_subscriber.save()
和在html上

<form method="post" action="{% url 'newsletter:newsletter_subscribe' %}" id="frmnewsletter"> {% csrf_token %}
   <div>
       <label for="nltname">Your Name:</label> <input type="text" name="name" class="textboxnewsletter" id="nltname" /><br />
       <label for="nltemail">Email Address:</label> <input type="text" name="email" class="textboxnewsletter" id="nltemail" /><br />
      <input type="submit" name="submitsubscribe" class="submitsubscribe" value="Subscribe" />
      <div class="clear"></div>
   </div>
</form>
{%csrf\u令牌%}
您的姓名:
电子邮件地址:
如果用户已经在我的数据库中保存了她的电子邮件或保存了成功消息,我就无法使用ajax创建返回函数
你能帮我做这个吗?请注意,我的表单位于“base.html”上,如果可能的话,我不想使用templatetags或forms.py系统。但是,如果您能帮助我,我会遵循您的代码。如果您必须使用ajax,那么我建议使用jQuery的$.ajax()函数。对django+ajax有很好的了解,这对我帮助很大

不过,您不需要ajax。如果您确实想要,可以避免使用表单,但不能使用模板标记。我认为这应该做你想做的,或者至少把你推向正确的方向

# views.py

from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render

from newsletter.models import Member

def subscribe(request):
    if request.method == 'POST'
        fullname = request.POST['name']
        email =  request.POST['email']
        very_exist = [m.email for m in Member.objects.all()]
        if email in very_exist:
            error = "Votre adresse email est déjà inscrite à la newsletter."
            return HttpResponse({'error': error})
            # return render(request, 'base.html', {'error': error}) # or this, I'm not sure

        new_subscriber = Member(fullname=fullname, email=email)
        new_subscriber.save()

        return HttpResponseRedirect('/success/')

    return render(request, 'base.html')
在base.html中的某个地方:

{% if error %}
    <p class='error-msg'>{{ error }}</p>
{% endif %}
{%if错误%}

{{error}

{%endif%}