La colonne clean_name n'existe pas (Wagtail 2.10)

Aug 19 2020

Je viens de passer de Wagtail 2.9.3 à 2.10 et j'ai découvert que mes FormPages ne fonctionnaient plus en raison d'un clean_namechamp manquant. J'ai lu la documentation sur ce nouveau changement mais je suis complètement perdu quant à la façon de le réparer.

Après la mise à niveau, j'ai essayé d'exécuter mon serveur local, mais on m'a dit que je devais exécuter des migrations, ce que j'ai fait. Comment puis-je ajouter la colonne clean_name à mon champ ? Dois-je simplement ajouter la colonne à ma classe FormField ci-dessous, comme je le ferais normalement ?

Vous trouverez ci-dessous la trace de la pile et les modèles pertinents.

ProgrammingError at /support-us/volunteer/
column core_formfield.clean_name does not exist
LINE 1: ...e_formfield"."id", "core_formfield"."sort_order", "core_form...
class FormField(AbstractFormField):
    page = ParentalKey(
        'FormPage',
        on_delete=models.CASCADE,
        related_name='form_fields',
    )

class FormPage(MetadataPageMixin, AbstractEmailForm):

    body = StreamField(BaseStreamBlock())
    confirmation_text = RichTextField(blank=True)

    content_panels = AbstractEmailForm.content_panels + [
        StreamFieldPanel('body'),
        InlinePanel('form_fields', label='Form Fields'),
        FieldPanel('confirmation_text'),
        MultiFieldPanel([
            FieldRowPanel([
                FieldPanel('from_address', classname="col6"),
                FieldPanel('to_address', classname="col6"),
            ]),
            FieldPanel("subject"),
        ], heading="Email Settings"),
    ]

    class Meta:
        verbose_name = 'Form Page'
        verbose_name_plural = 'Form Pages'

Réponses

2 gasman Aug 19 2020 at 15:18

L'exécution ./manage.py makemigrationset ./manage.py migrateaprès la mise à niveau devraient suffire. Aucune modification de votre code n'est requise - le nouveau clean_namechamp est défini dans le cadre de AbstractFormField, il n'est donc pas nécessaire de l'ajouter à votre propre définition de Formfield.