wagtail 2.0 beta' wagtaildocuments.Document'尚未加载

时间:2018-01-31 19:30:26

标签: django wagtail

我已经安装了wagtail 2的测试版。下面是我项目的代码片段。当我尝试制作色情时,我得到一个错误说: ValueError:无法为' link_document'创建表单字段然而,因为它的相关模型' wagtaildocuments.Document'尚未加载

class LinkFields(models.Model):

    link_document = models.ForeignKey(
        'wagtaildocuments.Document',
        null=True,
        blank=True,
        related_name='+',
        on_delete=models.SET_NULL,
    )

    @property
    def link(self):
        return self.link_document.url


    panels = [
        DocumentChooserPanel('link_document'),
    ]

    class Meta:
        abstract = True

class CarouselItem(LinkFields):
    embed_url = models.URLField("Embed URL", blank=True)
    caption = models.CharField(max_length=255, blank=True)

    panels = [
        FieldPanel('embed_url'),
        FieldPanel('caption'),
        MultiFieldPanel(LinkFields.panels, "Link"),
    ]

    class Meta:
        abstract = True

我正在使用Django 2,Python 3.6,Wagtail 2.0b1

1 个答案:

答案 0 :(得分:0)

ForeignKey中的Document模型应引用为'wagtaildocs.Document',而不是'wagtaildocuments.Document'

虽然Wagtail中的许多模块路径(例如import行中使用的)已针对Wagtail 2.0进行了更新,但应用程序标签仍未更改。 (必须以这种方式完成,因为应用标签只是一个名称,如wagtailimageswagtaildocs,没有虚线路径来区分它:如果它被称为images或{ {1}}相反,它会冒与项目中使用相同名称的其他应用程序冲突的风险。)ForeignKey定义中的模型名称写为documents,因此'<app_label>.<ModelName>'是在此处使用的正确名称。