Отправка формы без перенаправлений в Django - PullRequest
4 голосов
/ 08 июля 2010

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

просмотров:

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"))

1 Ответ

6 голосов
/ 08 июля 2010

без перенаправления означает, что

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

в случае 1 вы можете сделать это, используя jquery-ajax-forms

в случае-2 после запроса на публикацию перенаправить пользователя на ту же страницу вместо перенаправления на '/'

return HttpResponseRedirect('redirect/to/form/page')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...