首页 > 解决方案 > 如何迭代模板中的“页面”对象的属性?

问题描述

我有一个看起来像这样的 Django 模板页面。

{% extends "base.html" %}
{% load wagtailcore_tags static %}
{% block body_class %}template-bidpage{% endblock %}
{% block content %}
    {% for prp in page %}
        <p>{{ prp }}</p>
    {% endfor %}
{% endblock content %}

但是加载这个页面给了我错误'MyPage' object is not iterable。如何显示我的MyPage对象的每个属性?

标签: wagtail

解决方案


您应该在模型类中编写一个方法来返回属性。

class MyPage(Page):

    # your fields go here

    def get_properties(self):
        # return all properties

然后在您的模板中

{% extends "base.html" %}
{% load wagtailcore_tags static %}
{% block body_class %}template-bidpage{% endblock %}
{% block content %}
    {% for prp in page.get_properties %}
        <p>{{ prp }}</p>
    {% endfor %}
{% endblock content %}

推荐阅读