wagtail 'NoneType' 对象没有属性 'model'

wagtail 'NoneType' object has no attribute 'model'

我在尝试创建页面时安装了新的 wagtail,但出现错误:

'NoneType' object has no attribute 'model'

我的 class 是:

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 一起使用,而不是 ImageField。这是因为 Django 的 ImageField 字段类型只提供普通文件上传,但在 Wagtail 中图像是数据库 objects 本身可以是 re-used,给定标题,组织成 [=23] =] 等等。

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 %} 模板标签)将无法用于他们。