【问题标题】:Submitting form without redirects in Django在Django中提交没有重定向的表单
【发布时间】:2011-03-13 03:16:23
【问题描述】:

在我的主页中,我包含了一个带有表单的模板,用于将电子邮件添加到时事通讯中。我希望此表单可以添加新电子邮件而无需重定向到任何地方。我怎样才能做到这一点?这是我的代码,当我为此使用单独的页面时:

观看次数:

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

【问题讨论】:

    标签: django redirect django-templates django-forms


    【解决方案1】:

    不重定向任何地方意味着

    1. 表单提交不应重定向(或)
    2. 提交表单后,用户应该被重定向到与表单相同的页面。

    在 case-1 中,您可以使用 jquery-ajax-forms 执行此操作

    in case-2 在 post 请求后将用户重定向到同一页面而不是重定向到 '/'

    return HttpResponseRedirect('redirect/to/form/page')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-21
      • 2012-06-15
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 2016-02-28
      相关资源
      最近更新 更多