Wagtail Form在提交时无效验证

时间:2016-05-25 20:11:00

标签: django django-forms django-templates templatetags wagtail

我创建了一个"订阅"使用Wagtail表单构建器,需要一个电子邮件字段,我还创建了一个模板标签,以便在网站的不同位置使用此表单。

问题:

如果用户使用不完整的电子邮件地址提交表单,我将收到验证错误(预计会出现错误)。但是,如果用户在未提供电子邮件地址的情况下提交表单,则wagtail会将用户发送到实际的表单URL并提示用户再次填写表单。

行为应该是,如果在没有电子邮件地址的情况下提交表单,也应该触发验证错误,这不会发生。

以下是表单型号代码:

class FormField(AbstractFormField):
    page = ParentalKey('SubscribeForm', related_name='form_fields')

class SubscribeForm(AbstractEmailForm):
    intro = RichTextField(blank=True)
    thank_you_text = RichTextField(blank=True)

    content_panels = AbstractEmailForm.content_panels + [
        FieldPanel('intro', classname="full"),
        InlinePanel('form_fields', label="Form fields"),
        FieldPanel('thank_you_text', classname="full"),
        MultiFieldPanel([
            FieldPanel('to_address', classname="full"),
            FieldPanel('from_address', classname="full"),
            FieldPanel('subject', classname="full"),
        ], "Email")
    ]

以下是自定义模板代码:

from django import template
from home.models import *

register = template.Library()

# Subscribe

@register.inclusion_tag('home/subscribe_form.html', takes_context=True)
def vdecristo_subscribe(context):

    page = SubscribeForm.objects.get(slug='subscribase')
    return {
        'request': context['request'],
        'page': page,
        'form': page.get_form(),
    }

以下是html代码:

{% load wagtailcore_tags  vdecristo_tags %}

<!-- Callout Subscribe Form Green -->


        <div class="shop-subscribe bg-color-green margin-bottom-40">
            <div class="container">
                    <div class="row">
                        <div class="col-md-8 md-margin-bottom-20">
                                <h2>Subscribase para mantenerse<strong> informado</strong></h2>
                        </div>

                    <form action="{% pageurl page %}" method="POST">
                        {% csrf_token %}

                        <div class="col-md-4">
                                <div class="input-group">

                            <input id="id_subscribase" class="form-control" placeholder="Correo Electronico..." name="subscribase"
                                 type="email">
                            <span class="input-group-btn">
                                <button class="btn" type="submit"><i class="fa fa-envelope-o"></i></button>
                            </span>


                     </form>


                                </div>


                            </div>
                    </div>
            </div><!--/end container-->
        </div>

有人可以对这个问题有所了解吗?

1 个答案:

答案 0 :(得分:0)

很难在不看到views.py代码的情况下知道,但重新加载空表单是在视图的if request.method == 'POST' ...部分未收到request.POST表单时发生的事情数据

相关问题