Django

Django choices(チョイス・コンボボックス)フィールドの使い方

modelsの設定で、選択肢が決まったフィール江尾設定することがあると思います。

例えば、服の大きさを表す、Small Medium Large を管理するフィールドを作るとします。

ただ、実際のデータの持ち方は、S M L と管理します。

from django.db import models

class Clothes(models.Model):
    SHIRT_SIZES = (
        ('S', 'Small'),
        ('M', 'Medium'),
        ('L', 'Large'),
    )
    name = models.CharField(max_length=60)
    size = models.CharField(max_length=1, choices=SHIRT_SIZES)

これだけで、formsでフィールドを呼び出した時には、選択肢は、Smll、Medium, Largeというように表示されます。

さらにhtmlのテンプレートで表示名を呼び出す方法があります。

t-shirts = Clothes(name="shirts", shirt_size="L")
t-shirts.shirt_size
'L' ※そのまま呼び出すとLと表示されます
t-shirts.get_shirt_size_display()
'Large' #get_ を最初につけて、最後に _display をつけることで表示名を呼び出すことができます

これで、チョイスフィールドを使っても、その表示名を呼び出せないからそのままの言葉で持たなきゃってことがなくなりますね。

-Django
-

© 2021 ごろう@縁紡ぐ