get_(field名)_display()で取得が出来る
Djangoを使用しているとモデルでchoicesを使用することも多々あると思うのですが、viewやtemplate側で値だけ取りたい場合にchoicesの中身はtupleなので、いつもどう表示するのか忘れてしまいがちなので、メモっておきたいと思います。
STATUS_DEFAULT = 0 STATUS_DONE = 9 STATUS_CHOICES = ( (STATUS_DEFAULT, 'デフォルト'), (STATUS_DONE, '完了') ) class Test(models.Model): status = models.SmallIntegerField(default=TYPE_OTHER, choices=TYPE_CHOICES) def __str__(self): return self.get_status_display()
もちろん、template側でも使えます。
Testオブジェクトをview側で取得した後に、contextに渡してあげて、
{{ test.get_status_display }}
結構使う機会が多いのに、忘れがちということで、残しておきたいと思います。