我想做这样的事情:
{% if user.get_profile.gender == 'F' %}
var gender = her
{% endif %}
{% if user.get_profile.gender == 'M' %}
var gender = him
{% endif %}
稍后在模板中说出类似的内容:
<a href=#>Message {{gender}}</a>
如果user.get_profile.gender
为空怎么办?我怎么能检查呢?
对不起,我是django和python的新手......
答案 0 :(得分:1)
你不能(轻松地)使用django的模板语言。这是设计的。 documentation mentions this specifically:
模板系统用于表达表示,而不是程序逻辑。
相反,在您的个人资料模型上编写简单方法要容易得多:
class Profile(models.Model):
...
def pronoun(self):
if self.gender == 'F':
return "her"
elif self.gender == 'M':
return "him"
return "them"
并改为呼叫:
{{ user.get_profile.pronoun }}
替代方法是write a template filter,您可以在属性上使用gender
字段的值,并返回相应的字符串。如果您计划重用函数
@register.filter(name='gender_pronoun')
def gender_pronoun(value):
if self.gender == 'F':
return "her"
elif self.gender == 'M':
return "him"
return "them"
并在模板
中调用它{{ user.get_profile.gender|gender_pronoun }}