1. 程式人生 > 實用技巧 >Django-模型-欄位選項

Django-模型-欄位選項

欄位選項

  • 每個欄位都接受一組與欄位有關的引數(文件在模型欄位參考中)。例如,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,