2 votes

Le formulaire Wagtail ne se valide pas lorsqu'il est soumis vide

J'ai créé un formulaire "S'abonner" en utilisant le constructeur de formulaires Wagtail, avec un champ d'e-mail qui est obligatoire, j'ai également créé une balise de modèle pour utiliser ce formulaire à différents endroits sur le site web.

Le problème:

Si l'utilisateur soumet le formulaire avec une adresse e-mail incomplète, je recevrai une erreur de validation (ce qui est attendu). Cependant, si l'utilisateur soumet le formulaire sans fournir d'adresse e-mail, wagtail redirige l'utilisateur vers l'URL du formulaire réel et demande à l'utilisateur de remplir à nouveau le formulaire.

Le comportement souhaité est que si le formulaire est soumis sans adresse e-mail, une erreur de validation doit également être déclenchée, ce qui n'est pas le cas.

Voici le code du modèle de formulaire:

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

Voici le code de la balise de modèle personnalisée:

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(),
    }

Voici le code HTML:

{% load wagtailcore_tags  vdecristo_tags %}

                                Subscribase para mantenerse informado

                        {% csrf_token %}

Quelqu'un pourrait-il éclaircir ce problème?

0voto

Jheasly Points 53

Difficile de savoir sans voir votre code views.py, mais le rechargement du formulaire vide est le genre de chose qui se produit lorsque la partie if request.method == 'POST' ... de la vue ne reçoit pas les données du formulaire request.POST.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X