Django-模型-欄位選項
阿新 • • 發佈:2020-10-21
欄位選項
- 每個欄位都接受一組與欄位有關的引數(文件在模型欄位參考中)。例如,
CharField
(和它的派生類)需要max_length
引數來指定VARCHAR
資料庫欄位的大小。 - 適用於所有欄位的通用引數
null
如果為True
,Django將在資料庫中把空值儲存為NULL
。預設為False
。blank
如果為True
,該欄位允許為空值,預設為False
。要注意,這與 null 不同。
null純粹是資料庫範疇,指資料庫中欄位內容是否允許為空,
而 blank 是表單資料輸入驗證範疇的。
如果一個欄位的blank=True,表單的驗證將允許輸入一個空值。
如果欄位的blank=False,該欄位就是必填的。choices
由二項元組構成的一個可迭代物件(例如,列表或元組),用來給欄位提供選擇項。如果設定了choices ,預設的表單將是一個選擇框而不是標準的文字框,而且這個選擇框的選項就是choices 中的選項。
這是一個關於 choices 列表的例子:
YEAR_IN_SCHOOL_CHOICES = ( ('FR', 'Freshman'), ('SO', 'Sophomore'), ('JR', 'Junior'), ('SR', 'Senior'), ('GR', 'Graduate'), )
每個元組中的第一個元素是將被儲存在資料庫中的值。
ModelChoiceField
顯示。給定一個模型例項,可以使用get_FOO_display()
方法來訪問選項欄位的顯示值。例如:from django.db import models class Person(models.Model): SHIRT_SIZES = ( ('S', 'Small'), ('M', 'Medium'), ('L', 'Large'), ) name = models.CharField(max_length=60) shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES)
>>> p = Person(name="Fred Flintstone", shirt_size="L") >>> p.save() >>> p.shirt_size 'L' >>> p.get_shirt_size_display() 'Large'
default
欄位的預設值。可以是一個值或者可呼叫物件。如果可呼叫 ,每個新物件建立時它都會被呼叫。help_text
表單部件額外顯示的幫助內容。即使欄位不在表單中使用,它對生成文件也很有用。primary_key
如果為True
,那麼這個欄位就是模型的主鍵。
如果你沒有指定任何一個欄位的primary_key=True
,
Django 就會自動新增一個IntegerField
欄位做為主鍵,所以除非你想覆蓋預設的主鍵行為,否則 沒必要設定任何一個欄位的primary_key=True,
主鍵欄位是隻讀的。如果你在一個已存在的物件上面更改主鍵的值並且儲存,一個新的物件將會在原有物件之外創建出來。例如:
from django.db import models class Fruit(models.Model): name = models.CharField(max_length=100, primary_key=True)
>>> fruit = Fruit.objects.create(name='Apple') >>> fruit.name = 'Pear' >>> fruit.save() >>> Fruit.objects.values_list('name', flat=True) <QuerySet ['Apple', 'Pear']>
unique
如果為True
, 則這個欄位在整張表中必須是唯一的。