2.1.5
Python版本:
3.6.8
摇摆版本:
我有一个在页脚有四列链接的模板。我建立了以下模型,其中包括
BaseSetting
每个链接列的对象和页脚链接对象。页脚链接每个对象
ForeignKey
TemplateItems
对象
@register_setting
class TemplateItems(BaseSetting):
page_banner = models.OneToOneField('wagtailimages.Image', null=True, blank=True, on_delete=models.SET_NULL, related_name='+', help_text='Banner image that shows below menu on pages other than home page')
footer_link_col1_header = models.CharField(max_length=25, default='', verbose_name='Footer Link Column 1 Header')
footer_link_col2_header = models.CharField(max_length=25, blank=True, default='', verbose_name='Footer Link Column 2 Header')
footer_link_col3_header = models.CharField(max_length=25, blank=True, default='', verbose_name='Footer Link Column 3 Header')
footer_link_col4_header = models.CharField(max_length=25, blank=True, default='', verbose_name='Footer Link Column 4 Header')
panels = [
ImageChooserPanel('page_banner'),
MultiFieldPanel([
FieldPanel('footer_link_col1_header'),
InlinePanel('footer_links_col_1', label='Column 1 Links'),
FieldPanel('footer_link_col2_header'),
InlinePanel('footer_links_col_2', label='Column 2 Links'),
FieldPanel('footer_link_col3_header'),
InlinePanel('footer_links_col_3', label='Column 3 Links'),
FieldPanel('footer_link_col4_header'),
InlinePanel('footer_links_col_4', label='Column 4 Links'),
], heading='Footer Links'),
InlinePanel('social_media_links', label="Social Media Links"),
]
class FooterLink(Orderable):
name = models.CharField(max_length=60, default='')
url = models.CharField(max_length=200, default='')
panels = [
FieldRowPanel([
FieldPanel('name'),
FieldPanel('url'),
])
]
class Meta:
abstract = True
def __str__(self):
return f'{self.name}'
class FooterLinkCol1(FooterLink):
template_items = ForeignKey('TemplateItems', related_name='footer_links_col_1', null=True, on_delete=models.SET_NULL)
class FooterLinkCol2(FooterLink):
template_items = ForeignKey('TemplateItems', related_name='footer_links_col_2', null=True, on_delete=models.SET_NULL)
class FooterLinkCol3(FooterLink):
template_items = ForeignKey('TemplateItems', related_name='footer_links_col_3', null=True, on_delete=models.SET_NULL)
class FooterLinkCol4(FooterLink):
template_items = ForeignKey('TemplateItems', related_name='footer_links_col_4', null=True, on_delete=models.SET_NULL)
迁移已成功创建和迁移,但当我转到
位于/admin/settings/main/templateitems/2的键错误/
“页脚链接列1”
如果我注释掉任何页脚链接项,那么我会收到第一个未注释掉的错误。数据库中没有任何列的现有页脚链接。我想知道问题是否是因为
外侨
是一个
基线设置
对象,但当我在Django admin中声明这些模型(包括每个列链接的内联线)时,它会显示出来,并允许我添加链接。
回溯:
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/django/core/handlers/exception.py”
在内部
34响应=获取响应(请求)
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/django/core/handlers/base.py”
你得到了什么回应
126response=self.process\u异常\u由\u中间件(e,请求)
文件
124响应=包装的回调(请求,*回调参数,**回调参数)
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/django/views/decorators/cache.py”
44响应=查看功能(请求,*args,**kwargs)
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE-packages/wagtail/admin/url/
初始化
.py“
包装中
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/admin/decorators.py”
在你看来
34返回视图功能(请求,*args,**kwargs)
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/contrib/settings/views.py”
编辑中
83实例=实例,形式=形式,请求=请求)
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/admin/edit_handlers.py”
在绑定到实例中
153new.on_实例_绑定()
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/admin/edit_handlers.py”
在on_实例_绑定中
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/admin/edit_handlers.py”
在绑定到实例中
153new.on_实例_绑定()
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/admin/edit_handlers.py”
在on_实例_绑定中
295请求=self.request)
在绑定到实例中
文件
“/opt/virtualenvs/MY_SITE-a0hNfZxl/lib/python3.6/SITE packages/wagtail/admin/edit_handlers.py”
在on_实例_绑定中
异常类型:keyrerror位于/admin/settings/main/templateitems/2/
异常值:“页脚链接列1”