鹡鸰 - 如何使用不同的模板设置多个路径到同一模型安装?



想象一个页面模型:

class ItemPage(Page):
featured = models.BooleanField(default=False)
priority = models.IntegerField(default=0)

这是由 Wagtail 提供的模型,在结构或网站给出的 url 上(所有实例都在同一个地方(,例如:

/items/1
/items/2
...

我想创建一个不同的路径模板,这将导致不同的模板(相同的模型,相同的数据,不同的HTML/JS/CSS(:

/items-different-view/1
/items-different-view/2
...

我可以为此使用 Django 机制 - 在urls.py中创建一个正则表达式模式,该模式触发返回 HTTP 响应的自定义函数(另一个模板填充了特定实例的数据(。

但是,是否有更多的鹡鸰方法可以直接在模型中执行此操作,而无需创建支出URL和视图功能?

覆盖Page定义上的get_template()。 参考:

  • https://docs.wagtail.io/en/latest/topics/pages.html?highlight=get_template#dynamically-choosing-the-template
  • https://docs.wagtail.io/en/latest/reference/pages/model_reference.html?highlight=page%20model#wagtail.core.models.Page.get_template

最新更新