django - 将参数传递给 Django 模型方法

标签 django django-models django-templates

在 Django 模型中,将参数传递给方法并在代码中使用它很容易。

Class Foo(models.Model):
    number = IntegerField()
    ...
    def bar(self, percent):
        return self.number * percent

f = Foo(number=250)
f.bar(10)

问题是如何在模板层做到这一点?像这样的东西: {{ foo.bar(10) }}

最佳答案

简单的回答是你不能这样做,这是设计使然; Django 模板旨在防止您在其中编写真正的代码。相反,您必须 write a custom filter ,例如

@register.filter
def bar(foo, percent):
    return foo.bar( float(percent) )

这会让你像 {{ foo|bar:"250"}} 这样调用,它在功能上与你的 {{ foo.酒吧(250)}}

关于django - 将参数传递给 Django 模型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955027/

相关文章:

error-handling - 在以下情况下如何在smarty模板中使用变量?

python-3.x - Django 模板中包含的 Pygal svg 图表的工具提示问题

python - django 将石斑鱼名称重新组合为选择详细名称

python - 添加保存的 FK 时 NoneType 对象不可调用

python - 使用来自多个相关模型的值创建上下文对象

python - 在事务中强制提交嵌套的 save()

django - 保存模型 int() 参数必须是字符串或数字,而不是 'tuple'

python - 与外部字段递归内联 Django Admin

javascript - django ajax javascript 不工作

javascript - 当用户打开新选项卡或转到另一个选项卡时如何发出通知?