python - 如何将 Django 模型发送到带有附加自定义字段的模板中?

标签 python django

我依稀记得以前在教程中看到过这样做。但是,我目前无法在文档中找到确切的方法。

假设我们有一个名为 Post 的模型。该模型有一个名为时间戳的字段。然而,当我们将这个模型发送到模板中时,我们并不关心时间戳。相反,我们想要更流行的“年龄”(X 分钟/小时前创建),谢天谢地,它可以从时间戳中推断出来。

不是为时间戳创建一个全新的字段,也不是使用自定义模板标签,我们可以在将它发送到我们的模板之前以某种方式临时添加一个字段到模型吗?

例如

# views.py
# Is the below code right? do I need to save()?
posts = Posts.objects.filter(...).filter(...)[:X]
for post in posts:
     # Post does not have an age field, we are creating one
     # temporarily before sending it to the template
     post.age = some_function(post.timestamp) 

return render_to_response(template, {'posts' : posts}, etc...) 

谢谢。

最佳答案

就让它成为property在模型上。

class Post(Model)
  @property
  def age(self):
    return now() - self.timestamp

关于python - 如何将 Django 模型发送到带有附加自定义字段的模板中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17398526/

相关文章:

python - Pytorch:反向池化和复制填充的类似过程?

python - 如何从 python 数据框字段中删除 "?"

python - 认证用户Django取决于用户

python - 在 django admin 中按相关字段搜索

python - 我的 Django 应用程序仍然使用旧的 Python 2.7,而不是虚拟环境

django - 如何在同一个模板中使用两个不同的 Django Form?

python - 在 Python 中向量化多维函数

python - 如何在 Django 模板中使用模板?

python - tensorflow GradientDescentOptimizer 不更新变量?

django - 如何避免 django 权限字符串中的拼写错误