【问题标题】:django model function in template Could not parse the remainder: '()'模板中的 django 模型函数无法解析剩余部分:'()'
【发布时间】:2016-06-13 03:35:52
【问题描述】:

我有一个看起来像这样的模型函数:

def follow_up_date(self):
        return self.date_worked+timedelta(days=self.follow_up_days)

我正在尝试为我在模板中循环的模型的每个实例化呈现此函数的结果:

                                                   {% for claim in claims %}
                                                    <tr>

                                                        <td>${{claim.due}}</td>
                                                        <td>{{claim.follow_up_date()}}</td>
                                                    </tr>
                                                    {% endfor %}

我得到错误:

无法解析余数:来自“claim.follow_up_date()”的“()”

我可以发誓我以前做过。有谁知道我做错了什么?

【问题讨论】:

  • 我相信你应该把括号去掉。

标签: python django django-models django-templates


【解决方案1】:

不要使用claim.follow_up_date() 作为函数,只需在您的django 模板中使用claim.follow_up_date 即可。即

{% for claim in claims %}
<tr>
    <td>${{claim.due}}</td>
    <td>{{claim.follow_up_date}}</td>
</tr>
{% endfor %}

【讨论】:

    【解决方案2】:

    使用python的@property装饰器:

    @property
    def follow_up_date(self):
        return self.date_worked+timedelta(days=self.follow_up_days)
    

    在你的模板中:

    ...
    <td>{{claim.follow_up_date}}</td>
    ...
    

    【讨论】:

      猜你喜欢
      • 2016-04-03
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 2019-09-04
      • 2011-07-11
      • 2015-03-06
      相关资源
      最近更新 更多