Django模型model Field詳解:


類型說明

AutoField一個自動增加的整數類型字段。通常你不需要自己編寫它,Django會自動幫你添加字段:id = models.AutoField(primary_key=True),這是一個自增字段,從1開始計數。如果你非要自己設置主鍵,那么請務必將字段設置為primary_key=True。Django在一個模型中只允許有一個自增字段,並且該字段必須為主鍵!

BigAutoField(1.10新增)64位整數類型自增字段,數字范圍更大,從1到9223372036854775807

BigIntegerField64位整數字段(看清楚,非自增),類似IntegerField ,-9223372036854775808 到9223372036854775807。在Django的模板表單里體現為一個textinput標簽。

BinaryField二進制數據類型。使用受限,少用。

BooleanField布爾值類型。默認值是None。在HTML表單中體現為CheckboxInput標簽。如果要接收null值,請使用NullBooleanField。

CharField字符串類型。必須接收一個max_length參數,表示字符串長度不能超過該值。默認的表單標簽是input text。最常用的filed,沒有之一!

CommaSeparatedIntegerField逗號分隔的整數類型。必須接收一個max_length參數。常用於表示較大的金額數目,例如1,000,000元。

DateFieldclass DateField(auto_now=False, auto_now_add=False, **options)日期類型。一個Python中的datetime.date的實例。在HTML中表現為TextInput標簽。在admin后台中,Django會幫你自動添加一個JS的日歷表和一個“Today”快捷方式,以及附加的日期合法性驗證。兩個重要參數:(參數互斥,不能共存)auto_now:每當對象被保存時將字段設為當前日期,常用於保存最后修改時間。auto_now_add:每當對象被創建時,設為當前日期,常用於保存創建日期(注意,它是不可修改的)。設置上面兩個參數就相當於給field添加了editable=False和blank=True屬性。如果想具有修改屬性,請用default參數。例子:pub_time = models.DateField(auto_now_add=True),自動添加發布時間。

DateTimeField日期時間類型。Python的datetime.datetime的實例。與DateField相比就是多了小時、分和秒的顯示,其它功能、參數、用法、默認值等等都一樣。

DecimalField固定精度的十進制小數。相當於Python的Decimal實例,必須提供兩個指定的參數!參數max_digits:最大的位數,必須大於或等於小數點位數 。decimal_places:小數點位數,精度。 當localize=False時,它在HTML表現為NumberInput標簽,否則是text類型。例子:儲存最大不超過999,帶有2位小數位精度的數,定義如下:models.DecimalField(..., max_digits=5, decimal_places=2)。

DurationField持續時間類型。存儲一定期間的時間長度。類似Python中的timedelta。在不同的數據庫實現中有不同的表示方法。常用於進行時間之間的加減運算。但是小心了,這里有坑,PostgreSQL等數據庫之間有兼容性問題!

EmailField郵箱類型,默認max_length最大長度254位。使用這個字段的好處是,可以使用DJango內置的EmailValidator進行郵箱地址合法性驗證。

FileFieldclass FileField(upload_to=None, max_length=100, **options)上傳文件類型,后面單獨介紹。

FilePathField文件路徑類型,后面單獨介紹

FloatField浮點數類型,參考整數類型

ImageField圖像類型,后面單獨介紹。

IntegerField整數類型,最常用的字段之一。取值范圍-2147483648到2147483647。在HTML中表現為NumberInput標簽。

GenericIPAddressFieldclass GenericIPAddressField(protocol='both', unpack_ipv4=False, **options)[source],IPV4或者IPV6地址,字符串形式,例如192.0.2.30或者2a02:42fe::4在HTML中表現為TextInput標簽。參數protocol默認值為‘both’,可選‘IPv4’或者‘IPv6’,表示你的IP地址類型。

NullBooleanField類似布爾字段,只不過額外允許NULL作為選項之一。

PositiveIntegerField正整數字段,包含0,最大2147483647。

PositiveSmallIntegerField較小的正整數字段,從0到32767。

SlugFieldslug是一個新聞行業的術語。一個slug就是一個某種東西的簡短標簽,包含字母、數字、下划線或者連接線,通常用於URLs中。可以設置max_length參數,默認為50。

SmallIntegerField小整數,包含-32768到32767。

TextField大量文本內容,在HTML中表現為Textarea標簽,最常用的字段類型之一!如果你為它設置一個max_length參數,那么在前端頁面中會受到輸入字符數量限制,然而在模型和數據庫層面卻不受影響。只有CharField才能同時作用於兩者。

TimeField時間字段,Python中datetime.time的實例。接收同DateField一樣的參數,只作用於小時、分和秒。

URLField一個用於保存URL地址的字符串類型,默認最大長度200。

UUIDField用於保存通用唯一識別碼(Universally Unique Identifier)的字段。使用Python的UUID類。在PostgreSQL數據庫中保存為uuid類型,其它數據庫中為char(32)。這個字段是自增主鍵的最佳替代品,后面有例子展示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM