對(duì)django 模型 unique together的示例講解
unique_together
這個(gè)元數(shù)據(jù)是非常重要的一個(gè)!它等同于數(shù)據(jù)庫(kù)的聯(lián)合約束!
舉個(gè)例子,假設(shè)有一張用戶表,保存有用戶的姓名、出生日期、性別和籍貫等等信息。要求是所有的用戶唯一不重復(fù),可現(xiàn)在有好幾個(gè)叫“張偉”的,如何區(qū)別它們呢?(不要和我說(shuō)主鍵唯一,這里討論的不是這個(gè)問(wèn)題)
我們可以設(shè)置不能有兩個(gè)用戶在同一個(gè)地方同一時(shí)刻出生并且都叫“張偉”,使用這種聯(lián)合約束,保證數(shù)據(jù)庫(kù)能不能重復(fù)添加用戶(也不要和我談小概率問(wèn)題)。在Django的模型中,如何實(shí)現(xiàn)這種約束呢?
使用unique_together,也就是聯(lián)合唯一!
比如:
unique_together = (('name', 'birth_day', 'address'),)
這樣,哪怕有兩個(gè)在同一天出生的張偉,但他們的籍貫不同,也就是兩個(gè)不同的用戶。一旦三者都相同,則會(huì)被Django拒絕創(chuàng)建。這一元數(shù)據(jù)經(jīng)常被用在admin后臺(tái),并且強(qiáng)制應(yīng)用于數(shù)據(jù)庫(kù)層面。
unique_together接收一個(gè)二維的元組((xx,xx,xx,...),(),(),()...),每一個(gè)元素都是一個(gè)元組,表示一組聯(lián)合唯一約束,可以同時(shí)設(shè)置多組約束。為了方便,對(duì)于只有一組約束的情況下,可以簡(jiǎn)單地使用一維元素,例如:
unique_together = ('name', 'birth_day', 'address')
聯(lián)合唯一無(wú)法作用于普通的多對(duì)多字段。
以上這篇對(duì)django 模型 unique together的示例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python定時(shí)任務(wù)框架APScheduler安裝使用詳解
這篇文章主要介紹了Python定時(shí)任務(wù)框架APScheduler安裝使用詳解,重點(diǎn)介紹如何使用APscheduler實(shí)現(xiàn)python定時(shí)任務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)Python定時(shí)任務(wù)APScheduler相關(guān)知識(shí)感興趣的朋友一起看看吧2022-05-05
OpenCV學(xué)習(xí)之圖像的分割與修復(fù)詳解
圖像分割本質(zhì)就是將前景目標(biāo)從背景中分離出來(lái)。在當(dāng)前的實(shí)際項(xiàng)目中,應(yīng)用傳統(tǒng)分割的并不多,大多是采用深度學(xué)習(xí)的方法以達(dá)到更好的效果。本文將詳細(xì)介紹一下OpenCV中的圖像分割與修復(fù),需要的可以參考一下2022-01-01
python安裝完成后可以進(jìn)行的后續(xù)步驟和注意事項(xiàng)小結(jié)
本文詳細(xì)介紹了安裝Python3后的后續(xù)步驟,包括驗(yàn)證安裝、配置環(huán)境、安裝包、創(chuàng)建和運(yùn)行腳本,以及使用虛擬環(huán)境,還強(qiáng)調(diào)了注意事項(xiàng),如系統(tǒng)更新、包管理與安全,感興趣的朋友一起看看吧2025-01-01
python 類對(duì)象和實(shí)例對(duì)象動(dòng)態(tài)添加方法(分享)
下面小編就為大家分享一篇python 類對(duì)象和實(shí)例對(duì)象動(dòng)態(tài)添加方法。具有很的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Python虛擬環(huán)境virtualenv的安裝與使用詳解
virtualenv可以用來(lái)管理互不干擾的獨(dú)立python虛擬環(huán)境,在有些場(chǎng)景下非常有用,下面這篇文章主要給大家介紹了Python虛擬環(huán)境virtualenv安裝與使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05
使用python檢測(cè)網(wǎng)頁(yè)文本內(nèi)容屏幕上的坐標(biāo)
在 Web 開(kāi)發(fā)中,經(jīng)常需要對(duì)網(wǎng)頁(yè)上的文本內(nèi)容進(jìn)行處理和操作,有時(shí)候,我們可能需要知道某個(gè)特定文本在屏幕上的位置,以便進(jìn)行后續(xù)的操作,所以本文將介紹如何使用 Python 中的 Selenium 和 BeautifulSoup 庫(kù)來(lái)檢測(cè)網(wǎng)頁(yè)文本內(nèi)容在屏幕上的坐標(biāo),需要的朋友可以參考下2024-04-04
python獲取當(dāng)前git的repo地址的示例代碼
大家好,當(dāng)談及版本控制系統(tǒng)時(shí),Git是最為廣泛使用的一種,而Python作為一門(mén)多用途的編程語(yǔ)言,在處理Git倉(cāng)庫(kù)時(shí)也展現(xiàn)了其強(qiáng)大的能力,本文給大家介紹了python獲取當(dāng)前git的repo地址的方法,需要的朋友可以參考下2024-09-09

