Wagtail技术问答:如何获取page.button.url的url值及button.url的值
1. 如何获取button.url的值?
你的HomePage模型里,button是关联到wagtailcore.Page的外键字段,所以button本身就是一个Page实例。而Wagtail的Page模型自带url属性,用来生成页面的完整访问地址:
- 在Python代码中:如果有HomePage的实例(比如
home_page),直接通过属性链访问即可:
# 先判断button不为空,避免空值报错 if home_page.button: button_url = home_page.button.url
- 在模板中:就像你给出的
home_page.html示例那样,用模板变量语法直接调用:
href="{{ page.button.url }}"
2. 如何获取page.button.url表达式中的url值?
这里的url是Wagtail Page模型的内置属性,获取它的核心就是先拿到page.button对应的Page实例,再访问其url属性,场景同样分两种:
- Python代码场景:确认
page.button存在后,直接提取url属性:
# 假设page是HomePage的实例 if page.button: url_value = page.button.url
- 模板场景:使用Django模板的变量解析语法,直接写出
{{ page.button.url }},模板引擎会自动逐层解析属性,最终输出url的值。
注意事项
因为button字段设置了null=True和blank=True,所以不管是代码还是模板里,最好先判断button是否存在,避免触发空属性访问的错误。比如模板里可以用默认值处理:
href="{{ page.button.url|default:"#" }}"
内容的提问来源于stack exchange,提问作者shaebi
相关产品推荐
相关产品推荐

