[英]Wagtail “has no field name”
我是新来的w,所以请原谅任何明显的错误。 我正在尝试创建一个名为PortfolioItemPage的新页面类型。 尝试使用运行服务器,makemigrations或迁移时出现以下错误:
Unhandled exception in thread started by <function check_errors.
<locals>.wrapper at 0x10900f048>
Traceback (most recent call last):
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/db/models/options.py", line 566, in get_field
return self.fields_map[field_name]
KeyError: 'project_title'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
fn(*args, **kwargs)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 120, in inner_run
self.check(display_num_errors=True)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/core/management/base.py", line 364, in check
include_deployment_checks=include_deployment_checks,
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/core/management/base.py", line 351, in _run_checks
return checks.run_checks(**kwargs)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/core/checks/registry.py", line 73, in run_checks
new_errors = check(app_configs=app_configs)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/checks.py", line 62, in get_form_class_check
edit_handler = cls.get_edit_handler()
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/utils/decorators.py", line 53, in __call__
return self.value
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/utils/functional.py", line 36, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/utils/decorators.py", line 49, in value
return self.fn(self.cls)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 768, in get_edit_handler
return edit_handler.bind_to_model(cls)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 131, in bind_to_model
new.on_model_bound()
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 276, in on_model_bound
for child in self.children]
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 276, in <listcomp>
for child in self.children]
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 131, in bind_to_model
new.on_model_bound()
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 276, in on_model_bound
for child in self.children]
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 276, in <listcomp>
for child in self.children]
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 131, in bind_to_model
new.on_model_bound()
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/wagtail/admin/edit_handlers.py", line 480, in on_model_bound
self.db_field = self.model._meta.get_field(self.field_name)
File "/Users/jlspencergarlitz/.venvs/jls-jmSlWnDA/lib/python3.6/site-packages/django/db/models/options.py", line 568, in get_field
raise FieldDoesNotExist("%s has no field named '%s'" % (self.object_name, field_name))
django.core.exceptions.FieldDoesNotExist: PortfolioItemPage has no field named 'project_title'
models.py
class PortfolioPageTag(TaggedItemBase):
content_object = ParentalKey('PortfolioItemPage',
related_name='tagged_items')
class PortfolioItemPage(Page):
project_title = blocks.CharBlock()
project_details_summary = blocks.CharBlock()
description = blocks.RichTextBlock()
date = blocks.DateBlock()
client = blocks.CharBlock()
tags = ClusterTaggableManager(through=PortfolioPageTag, blank=True)
location = blocks.CharBlock()
client_photo = ImageChooserBlock(required=False)
client_title = CommonHeadingBlock(required=False)
client_testimonial = blocks.RichTextBlock(required=False)
images = blocks.ListBlock(ImageChooserBlock())
content_panels = Page.content_panels + [
FieldPanel('project_title'),
MultiFieldPanel([
FieldPanel('project_details_summary'),
FieldPanel('description'),
FieldPanel('date')],
heading="Project Basics",
classname="collapsible collapsed"
),
MultiFieldPanel([
FieldPanel('client'),
FieldPanel('tags'),
FieldPanel('location')],
heading="Meta Information",
classname="collapsible collapsed"
),
MultiFieldPanel([
ImageChooserPanel('client_photo'),
FieldPanel('client_title'),
FieldPanel('client_testimonial')],
heading="Client Testimonial",
classname="collapsible collapsed"
),
FieldPanel('images',)
]
promote_panels = Page.promote_panels + [
FieldPanel('tags'),
]
我已经确保拼写正确,并进行了很多Google搜索,但我似乎无法弄清楚问题所在。 我可以知道模型中存在该字段。 当删除content_panels
我可以将模型正确迁移到数据库中,但是一旦我将content_panel
添加回数据库,它就会失败。 我没有正确使用FieldPanel或MultiFieldPanel吗? 我将Wagtail2和Django2与Python3结合使用。
诸如blocks.CharBlock()
类的块对象仅在StreamField
定义内有效。 您需要改用Django模型字段 ,例如models.CharField()
或Wagtail的RichTextField
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.