Wagtail添加新页面

时间:2017-05-19 16:08:10

标签: python django workflow wagtail

我目前在我的wagtail网站上添加新页面的方法如下:

  1. 编辑已安装的应用以包含我的新页

    INSTALLED_APPS = [
      'home',
      'anotherpage',
      'newpage', # this is new
    
      'wagtail.wagtailforms',
      ...
    ]
    
  2. anotherpage的格式复制为newpage

    cp -rf  anotherpage newpage
    
  3. 将我对newpage/models.py的{​​{1}}引用编辑为anotherpage。 E.g。

    newpage

    变为

    class Anotherpage(Page):
    
  4. class Newpage(Page): 引用

    重命名:newpage/migrations/0001_initial.py

    mv feedback/templates/info feedback/templates/feedback

    然后运行mv feedback/templates/feedback/info_page.html feedback/templates/feedback/feedback_page.html

    然后python manage.py makemigrations

    问题

    这个工作流程效率很低,有没有比这更好的方法呢?

    我是python和wagtail的新手。任何关于我可以做得更好的见解都将非常感激

1 个答案:

答案 0 :(得分:1)

您不必为您创建的每个新页面模型创建新的INSTALLED_APPS条目和应用程序文件夹 - 单个models.py文件可以包含任意数量的页面模型。通常,我会为您网站的每个主要区域推荐一个应用程序 - 例如,您可以拥有包含blogBlogPageBlogIndex页面类型的BlogArchive应用。如果需要,您甚至可以在一个应用程序中为整个站点定义页面模型 - 尽管在文件变得非常大时可能难以维护。

这样,创建新的页面模型只需要将class Newpage(Page):定义添加到现有models.py,运行./manage.py makemigrations,并将新模板添加到现有模板目录中。

此外,当您决定创建新应用程序时,可以使用./manage.py startapp some_app_name命令来节省手动创建文件和文件夹的时间。