Django验证基本模板中包含的(新闻通讯)表单

时间:2018-09-13 15:11:53

标签: django django-forms

我有一个简单的新闻简报表单,我想将其包含在网站的每个页面中。

这是表格(subscribers / forms.py)

from django import forms

class SubscriberForm(forms.Form):

  email = forms.EmailField()
  first_name = forms.CharField(max_length=20)
  last_name = forms.CharField(max_length=30)

我已经设置了上下文处理器,因此可以在基本模板中呈现表单,例如

def subscriber_form(request):
  return {
    'subscriber_form':SubscriberForm(),
  }

在基本模板中,我有

{% include "subscribers/index.html" with form=subscriber_form %}

一切都很好。

但是,问题是我如何在不带用户使用其他URL(和视图)的情况下验证表单。我显然不想让用户进入(例如)/ subscriber / index(因此操作将为“'subscriber / index”)以及用于验证表单的关联视图,因为我想要验证错误(如果有的话) )显示在(基本)模板上。我还希望将成功消息显示在基本模板上,而不是将用户带到“成功” URL。使用JavaScript进行验证也不是问题,但是如果禁用JS,我希望有一个备用。

这都是因为我希望表单显示在每个页面上-因此为什么我需要将表单包括在基本模板中。

0 个答案:

没有答案