clean_name 열이 없습니다 (Wagtail 2.10).

Aug 19 2020

Wagtail 2.9.3에서 2.10으로 업그레이드 한 후 clean_name필드 누락으로 인해 FormPages가 더 이상 작동하지 않음을 발견했습니다 . 이 새로운 변경 사항에 대한 문서를 읽었지만 수정 방법이 완전히 손실되었습니다.

업그레이드 후 로컬 서버 실행을 시도했지만 마이그레이션을 실행해야한다고 들었습니다. 내 필드에 clean_name 열을 어떻게 추가 할 수 있습니까? 평소처럼 아래 FormField 클래스에 열을 추가하면됩니까?

아래는 스택 추적 및 관련 모델입니다.

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'

답변

2 gasman Aug 19 2020 at 15:18

실행 ./manage.py makemigrations./manage.py migrate업그레이드 후 충분해야합니다. 코드를 변경할 필요가 없습니다. 새 clean_name필드는의 일부로 정의 AbstractFormField되므로 사용자 고유의 Formfield 정의에 추가 할 필요가 없습니다.