Djangoドキュメント-Modelフィールドオプション(Field Options)

1957 ワード

簡易モデルを作成
class Person(models.Model):

    GENDER_CHOICES=(

        (1,'Male'),

        (2,'Female'),

        )

    name=models.CharField(max_length=30,unique=True,verbose_name='   ')    

    birthday=models.DateField(blank=True,null=True)

    gender=models.IntegerField(choices=GENDER_CHOICES)

    account=models.IntegerField(default=0)  

blank
Trueに設定すると、フィールドは空になります.Falseに設定する場合は、フィールドに記入する必要があります.文字型フィールドCharFieldとTextFieldは空の文字列で空の値を格納します.
null
Trueに設定すると、djangoはNullでNull値を格納します.日付、時刻、および数値フィールドには、空の文字列は使用できません.だからIntegerFieldを設定して、DateTimeField型のフィールドが空になることができる時、blank、nullをすべてTrueに設定する必要があります.
BooleanFieldを空に設定する場合は、Null BooleanField型フィールドを選択します.
max_length
CharField型フィールドの最大長を設定します.
choices
要素が2-tuplesのシーケンス(listまたはtuple)からフィールドのchoicesとして使用されます.2-tupleの最初の要素はデータベースに格納され、2番目の要素はget_FOO_ディスプレイメソッドが得られます.
>>>p=Person(name='Sam',gender=1)

>>>p.save()

>>>p.gender

1

>>>p.get_gender_display()

u'Male'


choicesの選択肢が多すぎる場合は、ForiegnKeyを使うことを考えたほうがいいです.
default
フィールドの既定値を設定します.
デフォルト値は、同じインスタンスへの参照として、すべての新しいモデルインスタンスのデフォルト値として使用される可変オブジェクト(モデルインスタンス、リスト、コレクションなど)ではありません.逆に、呼び出し可能なオブジェクトに必要なデフォルト値をカプセル化します.たとえば、カスタムJSOnFieldを持っていて、デフォルトの辞書として指定したい場合は、lambda式を使用して次のようにします.
contact_info = JSONField("ContactInfo", default=lambda:{"email": "[email protected]"})

verbose_name
このフィールドのadminインタフェースでの表示名を設定します.
unique
データベース内で一意である必要があるTrueに設定します.
>>>p=Person(name='Sam',gender=1)

>>>p.save()

>>>p=Person(name='Sam',gender=2)

>>>p.save()

IntergrityError: column name is not unique

primary_key
Trueに設定すると、このフィールドはModelのプライマリ・キーになります.一般的に、djangoはModelにidというIntegerFieldフィールドをプライマリ・キーとして自動的に追加します.