未加载 Wagtail 模板
Wagtail template not loading
我正在尝试建立一个小型 Wagtail 博客,它位于现有的 Django 项目中。
我已经尝试按照官方 wagtail 文档进行操作,但我无法查看我的模板,而是收到了 "Welcome to your new Wagtail site!"
我的博客应用程序树看起来像这样
blog
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_auto_20171121_0949.py
│ ├── __init__.py
│ └── __pycache__
│ ├── 0001_initial.cpython-36.pyc
│ ├── 0002_auto_20171121_0949.cpython-36.pyc
│ └── __init__.cpython-36.pyc
├── models.py
├── __pycache__
│ ├── admin.cpython-36.pyc
│ ├── __init__.cpython-36.pyc
│ ├── models.cpython-36.pyc
│ └── urls.cpython-36.pyc
├── templates
│ └── blog
│ └── blog_page.html
├── tests.py
├── urls.py
└── views.py
我在这里引用的所有其他文件都来自这棵树。
models.py 看起来像这样
from wagtail.wagtailcore.models import Page
from wagtail.wagtailcore.fields import RichTextField
from wagtail.wagtailadmin.edit_handlers import FieldPanel
class BlogPage(Page):
intro = RichTextField(blank=True)
body = RichTextField(blank=True)
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
]
urls.py 来自模型应用
from wagtail.wagtailadmin import urls as wagtailadmin_urls
from wagtail.wagtaildocs import urls as wagtaildocs_urls
from wagtail.wagtailcore import urls as wagtail_urls
from django.conf.urls import url, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^cms/', include(wagtailadmin_urls)),
url(r'^documents/', include(wagtaildocs_urls)),
#from /blog is where our blog will reside
url(r'^', include(wagtail_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
blog_page.html
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block body_class %}template-blogindexpage{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
<div class="Why is this not working?">{{ page.intro|richtext }}</div>
{% for post in page.get_children %}
<h2><a href="{% pageurl post %}">{{ post.title }}</a></h2>
{{ post.specific.intro }}
{{ post.specific.body|richtext }}
{% endfor %}
<h1>Hello world!</h1>
{% endblock %}
最后是我项目根目录中的 urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('homepage.urls')),
url(r'^blog/', include('blog.urls')),
]
很抱歉发布所有这些代码,但我不知道错误可能出在哪里。谢谢大家的回复!根据我从 Wagtail 文档中收集到的信息,Wagtail 应该喜欢 blog_page.html 因为 class BlogPage 寻找 "blog_page" 视图名称。
通过创建 BlogPage
class 和模板,您已将 BlogPage
定义为新页面 type,但您还没有尚未创建该类型的实际页面。您现在需要进入 /cms
的 Wagtail 管理员,并在现有 "Welcome to your new Wagtail site!" 页面旁边创建并发布一个新页面。然后您需要转到“设置”->“站点”并更新记录以指向该新页面。
我正在尝试建立一个小型 Wagtail 博客,它位于现有的 Django 项目中。 我已经尝试按照官方 wagtail 文档进行操作,但我无法查看我的模板,而是收到了 "Welcome to your new Wagtail site!" 我的博客应用程序树看起来像这样
blog
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_auto_20171121_0949.py
│ ├── __init__.py
│ └── __pycache__
│ ├── 0001_initial.cpython-36.pyc
│ ├── 0002_auto_20171121_0949.cpython-36.pyc
│ └── __init__.cpython-36.pyc
├── models.py
├── __pycache__
│ ├── admin.cpython-36.pyc
│ ├── __init__.cpython-36.pyc
│ ├── models.cpython-36.pyc
│ └── urls.cpython-36.pyc
├── templates
│ └── blog
│ └── blog_page.html
├── tests.py
├── urls.py
└── views.py
我在这里引用的所有其他文件都来自这棵树。 models.py 看起来像这样
from wagtail.wagtailcore.models import Page
from wagtail.wagtailcore.fields import RichTextField
from wagtail.wagtailadmin.edit_handlers import FieldPanel
class BlogPage(Page):
intro = RichTextField(blank=True)
body = RichTextField(blank=True)
content_panels = Page.content_panels + [
FieldPanel('body', classname="full"),
]
urls.py 来自模型应用
from wagtail.wagtailadmin import urls as wagtailadmin_urls
from wagtail.wagtaildocs import urls as wagtaildocs_urls
from wagtail.wagtailcore import urls as wagtail_urls
from django.conf.urls import url, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
url(r'^cms/', include(wagtailadmin_urls)),
url(r'^documents/', include(wagtaildocs_urls)),
#from /blog is where our blog will reside
url(r'^', include(wagtail_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
blog_page.html
{% extends "base.html" %}
{% load wagtailcore_tags %}
{% block body_class %}template-blogindexpage{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
<div class="Why is this not working?">{{ page.intro|richtext }}</div>
{% for post in page.get_children %}
<h2><a href="{% pageurl post %}">{{ post.title }}</a></h2>
{{ post.specific.intro }}
{{ post.specific.body|richtext }}
{% endfor %}
<h1>Hello world!</h1>
{% endblock %}
最后是我项目根目录中的 urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('homepage.urls')),
url(r'^blog/', include('blog.urls')),
]
很抱歉发布所有这些代码,但我不知道错误可能出在哪里。谢谢大家的回复!根据我从 Wagtail 文档中收集到的信息,Wagtail 应该喜欢 blog_page.html 因为 class BlogPage 寻找 "blog_page" 视图名称。
通过创建 BlogPage
class 和模板,您已将 BlogPage
定义为新页面 type,但您还没有尚未创建该类型的实际页面。您现在需要进入 /cms
的 Wagtail 管理员,并在现有 "Welcome to your new Wagtail site!" 页面旁边创建并发布一个新页面。然后您需要转到“设置”->“站点”并更新记录以指向该新页面。