【发布时间】:2020-12-14 02:52:30
【问题描述】:
我试图寻找解决方案,但可能错过了,可能是因为我不确定要问什么。
我是 Wagtail/Django 的新手。如何使父页面中的变量在子页面上可见?
我正在尝试制作一个包含页眉、内容和页脚的页面。我将它们附在{% block name_of_section %} 中。现在我有一个子页面(实际上是孙子,但无论如何),其中模板仅包含:
{% extends main_page.html %}
{% load wagtailcore_tags wagtailimages_tags static wagtailuserbar %}
{% block content%}
{{ page.photo }}
{{ page.article }}
{% endblock %}
和主页模板(当然是截断的):
{% load wagtailcore_tags wagtailimages_tags static wagtailuserbar %}
htmlcode
{% block header %}some stuff here{% endblock %}
{% block content %}stuff to be replaced in child pages here{% endblock%}
{% block footer %}{{ page.address }} {{ page.links }} {{% endblock %}}
finishing html code here
现在我遇到的问题是,当我加载子页面时,页眉、内容和页脚显示几乎正常。例外是来自页脚的那些变量地址和链接。我认为这是因为它仍然作为{{ page.address }} 传递给子页面,当然子页面没有地址,所以结果是空字符串。
我的解决方法是(可能非常错误地)在models.py 中执行此操作:
def address(self):
getattr(HomePage.objects.first(), 'address')
return address
因此,当主页加载时,模板会加载变量,而当子页面加载时,模板会调用方法(也可能以错误的方式 - 但有效)获取变量的值。
但是感觉不对。正确的方法是什么?
【问题讨论】:
标签: django django-templates wagtail