我有一个简单的新闻简报表单,我想将其包含在网站的每个页面中。
这是表格(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,我希望有一个备用。
这都是因为我希望表单显示在每个页面上-因此为什么我需要将表单包括在基本模板中。