【发布时间】:2018-05-28 20:35:37
【问题描述】:
在 wagtail 中,有没有一种为每个页面模型添加相同字段的好方法?我正在考虑几乎每个页面都希望实现的 SEO 数据字段和搜索元信息之类的东西。我似乎找不到使用 Wagtail 的好方法。
【问题讨论】:
标签: wagtail
在 wagtail 中,有没有一种为每个页面模型添加相同字段的好方法?我正在考虑几乎每个页面都希望实现的 SEO 数据字段和搜索元信息之类的东西。我似乎找不到使用 Wagtail 的好方法。
【问题讨论】:
标签: wagtail
为此,您可以使用抽象类(然后从这个基类继承而不是 Wagtail 的 Page)或 mixins(然后从 mixin 和 Wagtail 的 Page 继承)。
# Example with Abstract class
class BasePage(wagtail.wagtailcore.models.Page):
seo_image = models.ForeignKey(...)
class Meta:
abstract = True
class MyPage(BasePage):
pass
# Example with mixins
class SEOMixin(django.db.models.Model):
seo_image = models.ForeignKey(...)
class Meta:
abstract = True
class MyPage(SEOMixin, wagtail.wagtailcore.models.Page):
pass
使用抽象类可能是最简单的,但您的所有页面将始终继承基类中定义的所有字段。 另一方面,使用 mixins 更灵活,因为您可以拥有多个 mixin(SEOMixin、ThumbnailMixin 等)并根据您的需要组合它们。
【讨论】: