Django Model中字段(field)的各種選項(xiàng)說明
字段與選項(xiàng)
CharField() 字符字段
max_length = xxx or None # 必選項(xiàng)
blank = True 和 default = '' # 如果不是必填項(xiàng),可以設(shè)置
unique = True # 如果想要使其唯一,比如用于username,可以設(shè)置
choices = xxx_CHOICES # 如果有choice選項(xiàng),可以設(shè)置
TextField() 文本字段
max_length = xxx
blank = True 和 default = '' # 如果不是必填項(xiàng),可以設(shè)置
DateField() and DateTimeField() 日期與時(shí)間字段
default date # 一般建議設(shè)置默認(rèn)日期
DateField:default = date.today # 需要導(dǎo)入包 from datetime import date
DateTimeField:default = timezone.now # 需要導(dǎo)入包 from django.utils import timezone
auto_now = True # 對(duì)于上一次修改日期(last_modifiel date),可以設(shè)置
EmailField() 郵件字段
unique = True # 一般Email用于用戶名應(yīng)該是唯一的,建議設(shè)置
IntegerField(),SlugField(),URLField(),BoolField()
blank = True 和 default = '' # 如果不是必填項(xiàng),可以設(shè)置
default = True or False # 對(duì)于BoolField一般建議設(shè)置
FileField() 文件字段
upload_to ="/some folder/ " # 文件指向文件,必填項(xiàng)
max_length = xxx
ImageField(upload_to = None,**options) 圖片字段
upload_to = "/some folder/" # 圖片指向文件,必填項(xiàng)
height_field = None
width_field = None
max_length = xxx
ForeighKey(to,on_delete,**options) 一對(duì)多關(guān)系
to # 必須指向其他模型
on_delete = models.CASCADE or models.SET_NULL # on_delete指定刪除選項(xiàng)
"default = xxx" or "null = True"
"limit_choices_to = " # 如果有必要,可以設(shè)置
related_name = xxx # 便于反向查詢
舉例:
xxx = models.ForeignKey(xxx, on_delete = models.CASCADE, limit_choices_to = {'is_staff':True}, related_name = xxx)
ManyToManyField(to,**options) 多對(duì)多關(guān)系
to # 必須只想其他模型
symmetrical = False # 如果多對(duì)多關(guān)系不是對(duì)稱的,可以設(shè)置
through = 'intermediary model # 如果需要建立中間模型來搜集更多信息,可以設(shè)置
related_name = xxx # 便于反向查詢
補(bǔ)充知識(shí):django 使用annotate定義字段后排序翻頁重復(fù)的問題
objs = A.objects.annotate(number=Sum('b__number')).order_by('-number')
此時(shí)對(duì)objs翻頁,在number數(shù)據(jù)相同的地方翻頁數(shù)據(jù)可能會(huì)混亂(重復(fù))
解決辦法,加上id排序
objs = A.objects.annotate(number=Sum('b__number')).order_by('-number', 'id')
以上這篇Django Model中字段(field)的各種選項(xiàng)說明就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python tkinter制作用戶登錄界面的簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了python tkinter制作用戶登錄界面的簡(jiǎn)單實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python3編程實(shí)現(xiàn)獲取阿里云ECS實(shí)例及監(jiān)控的方法
這篇文章主要介紹了Python3編程實(shí)現(xiàn)獲取阿里云ECS實(shí)例及監(jiān)控的方法,涉及Python URL登陸及請(qǐng)求處理相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Python 動(dòng)態(tài)變量名定義與調(diào)用方法
這篇文章主要介紹了Python 動(dòng)態(tài)變量名定義與調(diào)用方法,需要的朋友可以參考下2020-02-02Python環(huán)境搭建以及Python與PyCharm安裝詳細(xì)圖文教程
PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,這篇文章主要給大家介紹了關(guān)于Python環(huán)境搭建以及Python與PyCharm安裝的詳細(xì)圖文教程,需要的朋友可以參考下2024-03-03Python?pandas刪除指定行/列數(shù)據(jù)的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Python?pandas刪除指定行/列數(shù)據(jù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01