2010-07-08 3 views
2

На моей главной странице Я включил шаблон с формой для добавления писем в информационный бюллетень. Я бы хотел, чтобы эта форма добавляла новые письма без перенаправления в любом месте. Как я могу это достичь? Вот мой код, когда я использую отдельную страницу для этого:Отправка формы без переадресации в Django

просмотров:

def newsletter_add(request): 
    if request.POST: 
     f = NewsletterForm(request.POST) 
     if f.is_valid(): 
      try: 
       e = NewsletterEmails.objects.get(email = request.POST['email']) 
       msg = u'Mail already added' 
       return render_to_response('newsletter/add.html', 
        {'form':f,'msg':msg,},RequestContext(request)) 
      except Address.DoesNotExist: 
       e = NewsletterEmails(email = request.POST['email']) 
       e.save() 
       msg = u'Mail added' 
       return HttpResponseRedirect('/') 
    else: 
     f = NewsletterForm() 
    return render_to_response('newsletter/add.html',{'form':f,},RequestContext(request)) 

форма:

{% block content %} 
    <div class="center-right"> 
     <div class="pane profile"> 
      <div class="div-content"> 
       {{ msg }} 
       <form action="" method="post" enctype="multipart/form-data"> 
        {{form.as_p}} 
        <input type="submit" class="submit" name="submit" value="Ok" /> 
       </form> 
      </div> 
     </div> 
    </div> 
{% endblock %} 

формы:

class NewsletterEmails(forms.Form): 
    email = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict,maxlength=75)),label=_("email")) 

ответ

5

без перенаправления в любом месте означает

  1. форму представления не следует перенаправлять (или)
  2. после отправки формы пользователь должен быть перенаправлен на эту же страницу с формой.

случай-1 вы можете сделать это с помощью jquery-ajax-forms

в случае-2 после запроса пост перенаправляют пользователя на той же странице, вместо того, чтобы перенаправлять «/»

return HttpResponseRedirect('redirect/to/form/page') 
Смежные вопросы