Django:在我的模板中调用模型的功能 - 不工作

时间:2017-09-29 01:00:07

标签: python django

我正试图在我的模板中调用我的模型(check_nick)中的函数。由于打印了函数中的项目,模板似乎成功点击了该函数。但是我没有得到预期的结果(True)作为我正在测试的user.group是NICK,它是NICK_BRANDS列表的一部分。

MODEL.PY:

NICK_BRANDS = ['NICK', 'NICKT', 'NICKN', 'NICKK', 'NICKA']


class User():

    group = models.ForeignKey(Brand, null=True, blank=True)

    def check_nick(self):
        brand = self.group
        print brand  //prints NICK
        print brand in NICK_BRANDS  //prints False (should be True!)
        if brand in NICK_BRANDS:
            return True
        else:
            return False

TEMPLATE:

 {% if user.check_nick %}
    //add some markup
 {% endif %}

2 个答案:

答案 0 :(得分:2)

您的调试打印了brand的一些字符串表示形式,但您正在检查实际对象。将你的if子句更改为:

 if str(brand) in NICK_BRANDS:
 # if brand.title in NICK_BRANDS:
 # if brand.name in NICK_BRANDS:
 # or whatever field of Brand is "NICK"

答案 1 :(得分:1)

self.group将是相关Brand模型的实例,而不是字符串,因此可能不会使用in语句返回True。我认为有一些Brand.name属性你应该使用:

def check_nick(self):
    return self.group.name in NICK_BRANDS