打印App Engine模型的所有属性

4 投票
3 回答
585 浏览
提问于 2025-04-16 21:52

我正在寻找一种简单的方法,来遍历一个Google App Engine(Python)模型,并打印出每个属性及其名称。

这是我尝试的方法,但经过一些研究我发现,变量之间不能直接相互嵌套。有没有什么方法可以使用过滤器,或者有什么办法可以返回模型所有属性的值呢?

谢谢!

templateargs = {'properties':MyModel.properties(), 'user1':MyModelObj, 'user2':MyModelObj}


{% for property in properties %}
    Property: {{property}}
    User1:  {{user1.{{property}}}}
    User2:  {{user2.{{property}}}}
{% endfor %}

3 个回答

1

试试这个:

vars(user1)[property]

可以查看 内置函数 的文档,里面有关于 vars 如何返回一个实例变量字典的简单解释。

2

看看这个方法叫做 to_json是怎么获取一个模型实例上所有属性的值的,这会给你一些启发。

1

经过进一步的研究,我意识到正确的方法是使用 gettattr。我的过滤器大致是这样的:

@register.filter 
def mygetattr(obj, name): 
    return getattr(obj, name) 

正如在这里所建议的那样。

撰写回答