Django Model中字段(field)的各種選項說明
字段與選項
CharField() 字符字段
max_length = xxx or None # 必選項
blank = True 和 default = ’’ # 如果不是必填項,可以設(shè)置
unique = True # 如果想要使其唯一,比如用于username,可以設(shè)置
choices = xxx_CHOICES # 如果有choice選項,可以設(shè)置
TextField() 文本字段
max_length = xxx
blank = True 和 default = ’’ # 如果不是必填項,可以設(shè)置
DateField() and DateTimeField() 日期與時間字段
default date # 一般建議設(shè)置默認日期
DateField:default = date.today # 需要導(dǎo)入包 from datetime import date
DateTimeField:default = timezone.now # 需要導(dǎo)入包 from django.utils import timezone
auto_now = True # 對于上一次修改日期(last_modifiel date),可以設(shè)置
EmailField() 郵件字段
unique = True # 一般Email用于用戶名應(yīng)該是唯一的,建議設(shè)置
IntegerField(),SlugField(),URLField(),BoolField()
blank = True 和 default = ’’ # 如果不是必填項,可以設(shè)置
default = True or False # 對于BoolField一般建議設(shè)置
FileField() 文件字段
upload_to ='/some folder/ ' # 文件指向文件,必填項
max_length = xxx
ImageField(upload_to = None,**options) 圖片字段
upload_to = '/some folder/' # 圖片指向文件,必填項
height_field = None
width_field = None
max_length = xxx
ForeighKey(to,on_delete,**options) 一對多關(guān)系
to # 必須指向其他模型
on_delete = models.CASCADE or models.SET_NULL # on_delete指定刪除選項
'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) 多對多關(guān)系
to # 必須只想其他模型
symmetrical = False # 如果多對多關(guān)系不是對稱的,可以設(shè)置
through = ’intermediary model # 如果需要建立中間模型來搜集更多信息,可以設(shè)置
related_name = xxx # 便于反向查詢
補充知識:django 使用annotate定義字段后排序翻頁重復(fù)的問題
objs = A.objects.annotate(number=Sum(’b__number’)).order_by(’-number’)
此時對objs翻頁,在number數(shù)據(jù)相同的地方翻頁數(shù)據(jù)可能會混亂(重復(fù))
解決辦法,加上id排序
objs = A.objects.annotate(number=Sum(’b__number’)).order_by(’-number’, ’id’)
以上這篇Django Model中字段(field)的各種選項說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. webpack高級配置與優(yōu)化詳解2. PHP設(shè)計模式(七)組合模式Composite實例詳解【結(jié)構(gòu)型】3. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享4. python中scrapy處理項目數(shù)據(jù)的實例分析5. HTML <!DOCTYPE> 標簽6. Docker與iptables及實現(xiàn)bridge方式網(wǎng)絡(luò)隔離與通信操作7. 詳解JSP 內(nèi)置對象request常見用法8. AJAX的跨域問題解決方案9. jsp文件下載功能實現(xiàn)代碼10. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))
