哪里放功能?

时间:2014-03-03 23:11:50

标签: django

我有一个实用程序函数,它解释对象中的分数并返回一个字符串。我想显示它为每个对象计算的字符串。如何将其添加到模板中?

views.py

def foo(bar):
    if bar.score >= 42:
        return "Oh yes!"
    else:
        return "Nooo!"

def home(request):
    bars = Bar.objects.all()
    # Do something with foo() and all the bars for our template to use?
    return render_to_response("home.html", 
                                locals(),
                                context_instance=RequestContext(request))

如何从foo(bar)访问home.html

Muchas gracias。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您只需向模型添加属性即可在模板中调用。自定义模板标签可能有点过分,因为只需利用该模型就可以用更少的代码完成相同的结果:

class Bar(models.Model):
    score = models.PositiveIntegerField(default=0)

    @property
    def foo(self):
        if self.score >= 42:
            return "Oh yes!"
        return "Nooo!"