Объект wagtail 'NoneType' не имеет атрибута 'model'

Я установил свежий wagtail, когда я пытаюсь создать страницу, я получаю ошибку :

'NoneType' object has no attribute 'model'

Мой класс :

class CategoryPage(Page):
    
    description_meta = models.CharField(max_length=500, null=True, blank=True)
    template = models.CharField(max_length=500, null=True, blank=True, default='_nixaTemplate/category/default.html')
    image = models.ImageField(_("Image"), upload_to="img/category/", blank=True, null=True)
    display = models.BooleanField(_("Display Post"), default=False )

    content_panels = Page.content_panels + [
        FieldRowPanel([
            FieldPanel("description_meta", classname="col-12 col12"),
            FieldPanel("template", classname="col-12 col12"),
            ImageChooserPanel("image", classname="full"),
        ]),
    ]

когда я пытаюсь создать страницу категории, я получаю сообщение

ImageChooserPanel нужно использовать с ForeignKey к модели Image, а не с ImageField. Это связано с тем, что тип поля Django ImageField обеспечивает обычную загрузку файлов, а в Wagtail изображения являются самостоятельными объектами базы данных, которые можно использовать повторно, давать им названия, организовывать в коллекции и т.д.

class CategoryPage(Page):
    description_meta = models.CharField(max_length=500, null=True, blank=True)
    template = models.CharField(max_length=500, null=True, blank=True, default='_nixaTemplate/category/default.html')
    image = models.ForeignKey(("wagtailimages.Image"), blank=True, null=True, on_delete=models.SET_NULL)
    display = models.BooleanField(_("Display Post"), default=False )

    content_panels = Page.content_panels + [
        FieldRowPanel([
            FieldPanel("description_meta", classname="col-12 col12"),
            FieldPanel("template", classname="col-12 col12"),
            ImageChooserPanel("image", classname="full"),
        ]),
    ]

В качестве альтернативы, если вам нужно обычное поле загрузки файла, вы можете использовать FieldPanel вместо ImageChooserPanel, но тогда изображения будут существовать вне библиотеки изображений Wagtail, и стандартные функции изображений (такие как тег шаблона {% image %}) не будут использоваться для них.

Вернуться на верх