我正试图在我的模板中调用我的模型(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 %}
答案 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