1. 程式人生 > >Django Model中欄位(Field)的選項

Django Model中欄位(Field)的選項

CharField() 字元欄位 必選項:max_length = xxx or None 如不是必填項,可設定blank = True和default = '' 如果用於username, 想使其唯一,可以設定unique = True 如果有choice選項,可以設定 choices = XXX_CHOICES

TextField() 文字欄位 max_length = xxx 如不是必填項,可設定blank = True和default = ''

DateField() and DateTimeField() 日期與時間欄位 一般建議設定預設日期default date. For DateField: default=date.today - 先要from datetime import date For DateTimeField: default=timezone.now - 先要from django.utils import timezone 對於上一次修改日期(last_modified date),可以設定: auto_now=True

EmailField() 郵件欄位 如不是必填項,可設定blank = True和default = '' 一般Email用於使用者名稱應該是唯一的,建議設定unique = True

IntegerField(), SlugField(), URLField(),BooleanField() 可以設定blank = True or null = True 對於BooleanField一般建議設定defautl = True or False

FileField(upload_to=None, max_length=100) - 檔案欄位 必須項:upload_to = "/some folder/" max_length = xxxx

ImageField(upload_to=None, height_field=None, width_field=None, max_length=100,) 必須項:upload_to = "/some folder/" 其他選項是可選的.

ForeignKey(to, on_delete, **options) - 單對多關係 to必需指向其他模型,比如 Book or 'self' . 必需指定on_delete options(刪除選項): i.e, "on_delete = models.CASCADE" or "on_delete = models.SET_NULL" . 可以設定"default = xxx" or "null = True" . 如果有必要,可以設定 "limit_choices_to = ",如下面例子。 staff_member = models.ForeignKey( User, on_delete=models.CASCADE, limit_choices_to={'is_staff': True}, ) 可以設定 "related_name = xxx" 便於反向查詢。

ManyToManyField(to, **options) - 多對多關係 to 必需指向其他模型,比如 User or 'self' . 設定 "symmetrical = False " if 多對多關係不是對稱的 設定 "through = 'intermediary model' " 如果需要建立中間模型來蒐集更多資訊 可以設定 "related_name = xxx" 便於反向查詢。