2012-07-31 19 views
2

我敢肯定,我在這裏錯過了一些愚蠢的東西,但我試圖用ifequal來評估一個模板變量。在Django中使用ifequal

這裏是我的模型:

USER_TYPES = (
('instructor', 'Instructor'), 
('student', 'Student'), 
) 


class UserProfile(models.Model): 
    type = models.CharField(
     choices=USER_TYPES, max_length=12 
    ) 
    user = models.ForeignKey(
     User, 
     unique=True 
    ) 

    def __unicode__(self): 
     return u'%s' % (self.type) 

...,我在模板中使用此:

{% ifequal user.userprofile_set.get student %} 
You're a student! 
{% endifequal %} 

當我簡單地打印出{{user.userprofile_set.get}}我得到:

student 

不知道我失蹤 - 任何幫助表示讚賞!

+5

'ifequal'在最近的Django版本過時,如果== B'只是使用'。在'student'周圍放上''',並確保首先在django shell上嘗試:'user.userprofile_set.get()=='student'' – 2012-07-31 05:35:37

+0

感謝評論 - 我最終使用了'{%if user .userprofile_set.get.type ==「student」%}'它的效果很好! – 2012-08-01 01:51:24

回答

4

ifequal已經過時......但我認爲這個工程:

{% ifequal user.userprofile_set.get.type "student" %} 
    Your a student! 
{% endifequal %} 
+1

只是想發表一樣。如果你只是使用'student',Django會「認爲」它是一個模板變量。這當然不起作用 – 2012-07-31 06:45:09

+1

感謝評論 - 我最終使用了'{%if user.userprofile_set.get.type =='student'%}',它效果很好!謝謝! – 2012-08-01 01:52:23