【问题标题】:Wagtail template not loading鹡鸰模板未加载
【发布时间】:2018-05-04 19:44:48
【问题描述】:

我正在尝试建立一个小型 Wagtail 博客,它位于现有 Django 项目中。 我已经尝试遵循官方 wagtail 文档,但我没有查看我的模板,而是收到“欢迎来到您的新 Wagtail 网站!”的问候。 我的博客应用的树看起来像这样

    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 应该喜欢 blog_page.html,因为类 BlogPage 会查找“blog_page”视图名称。

【问题讨论】:

    标签: django wagtail


    【解决方案1】:

    通过创建BlogPage 类和模板,您已将BlogPage 定义为新页面类型,但您尚未创建该类型的实际页面。您现在需要通过/cms 进入 Wagtail 管理员,并在现有的“欢迎来到您的新 Wagtail 站点!”旁边创建并发布一个新页面。页。然后,您需要转到设置 -> 站点并更新记录以指向该新页面。

    【讨论】:

    • 我没有意识到这一点,但是在 Wagtail 管理员中创建新页面(或编辑现有页面)时,我根本找不到我的 blog_page.html。我已经运行了迁移。我在“根页面”(设置)编辑默认值,尝试创建一个新页面并在编辑“页面”时寻找它
    • 我必须创建一个子页面才能看到我的视图,这似乎有点奇怪,它阻止了我在 /blog 上拥有所有博客文章。但它有效。感谢您的帮助!
    猜你喜欢
    • 2018-08-28
    • 2014-05-28
    • 2019-06-08
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2018-07-27
    相关资源
    最近更新 更多