Django模板调用函数

标签 django google-app-engine templates

使用 Google App Engine 和 Django。

每当我在模型中有一个 db.ReferenceProperty() 时:

class User( db.Model ) :
    name = db.StringProperty()
    avatar = db.ReferenceProperty( dbImage )

所以当发布用户页面时,在 Django 模板中我不能这样做:

<div>
    <span>{{ user.name }}</span>
    <span>{{ user.avatar.key() }}</span>
</div>

我现在正在做的是在数据输出到模板之前编写一些 Python 代码,如下所示:

user.avatarsKey = user.avatar.key()

然后

<div>
    <span>{{ user.name }}</span>
    <span>{{ user.avatarsKey }}</span>
</div>

消除函数调用。不过我不喜欢这样,因为我必须在很多地方这样做,而且它开始变得困惑。有没有办法从模板内部调用数据库对象的 .key() 方法?

最佳答案

在django模板中,函数调用就是函数获取。在你的例子中,尝试:

{{ user.avatar.key }}

我知道,这很奇怪。但是,嘿,数组/列表更糟:

{{ user.mylist.0 }}

关于Django模板调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2039422/

相关文章:

python - 如何从 Google Cloud Datastore 检索实体

python - Google App Engine - 关于 cron 任务的设计注意事项

c++ - 为什么只能在头文件中实现模板?

c++ - 相关模板类之间函数参数的自动转换

python - 在 Django 中,如何确保我的表单在提交后保留其初始值,但由于错误而返回到模板?

模型父类字段上的 Django unique_together

google-app-engine - 谷歌应用引擎的 PUT 请求的最大大小是多少?

c++ - 如何定义一个可以拥有任意参数的模板类?

django - PyCharm 无法使用 Django 项目应用解析 __init__.py 中的引用

python - 如何将 django 管理功能转移到前端