我的Django模型类如下:
class MyClass(models.Model):
CHOICE1 = "CHOICE1"
CHOICE2 = "CHOICE2"
FIELD_CHOICES = (
(CHOICE1, CHOICE1),
(CHOICE2, CHOICE2),
)
my_field = models.CharField(
max_length=254,
null=False,
blank=False,
choices=FIELD_CHOICES,
default=CHOICE1,
)
我将my_instance
MyClass
的实例传递给模板。
在该模板中,如何对my_field的可能值进行if-else检查?
我执行以下操作,但它不起作用:
{% if my_instance.my_field == my_instance.__class__.CHOICE1 %}
<p>BLAH BLAH1</p>
{% elif my_instance.my_field == my_instance.__class__.CHOICE2 %}
<p>BLAH BLAH2</p>
{% endif %}
修改
我可以将类MyClass
传递给模板上下文,然后使用MyClass.CHOICEX
。这样可行。但除了实例之外,必须传入类本身似乎是浪费。我不能从实例中获取Class,然后使用CHOICEX
?
答案 0 :(得分:2)
您可以从实例访问类变量:
{% if my_instance.my_field == my_instance.CHOICE1 %}
<p>BLAH BLAH1</p>
{% elif my_instance.my_field == my_instance.CHOICE2 %}
<p>BLAH BLAH2</p>
{% endif %}
检查this answer以获取有关类变量的更多信息。