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