Django 自定義表名和建立索引

2021-10-25 08:08:17 字數 1360 閱讀 9027

通過db_table和db_column自定義資料表名和欄位名

假如你的資料庫裡已經有了一張資料表,且該錶包含多個字段,你希望通過django直接訪問該資料表的各個欄位而不是重新建立新錶,你這時可以通過db_table指定資料表名,還可以通過db_column指定希望訪問的欄位名。

class article(models.model):

"""文章模型"""

# 通過db_column自定義資料表中欄位名

title = models.charfield('標題', max_length=200, db_column='article_title')

slug = models.slugfield('slug', max_length=60, blank=true)

def __str__(self):

return self.title

class meta:

db_table = 'article' # 通過db_table自定義資料表名

通過db_index和meta index選項給資料表字段建立索引

使用索引可快速訪問資料庫表中的特定資訊。資料庫索引好比是一本書前面的目錄,沒有索引目錄的話,你訪問書中某個頁面需要從第1頁遍歷到最後一頁,如果有目錄,你可以快速地根據目錄查詢到所需要的頁面。django專案中如果你需要頻繁地對資料表中的某些字段(如title)使用filter(), exclude()和order_by()方法進行查詢,我們強烈建議你對這些字段建議索引(index), 提公升查詢效率。

要對模型中的某個字段建立資料庫索引,你可以使用db_index選項,也可以使用meta選項建立索引。使用meta選項的好處是你可以一次性對多個字段建立索引,還可以對多個字段建立組合索引。

方法一: 使用db_index選項

class article(models.model):    

"""文章模型"""

# 使用db_index=true對title建立索引

title = models.charfield('標題', max_length=200, db_index=true)

方法二: 使用meta選項

class article(models.model):    

"""文章模型"""

title = models.charfield('標題', max_length=200,)

class meta:

indexes = [models.index(fields=['title']),]

django自定義使用者表

django中已經給我生成預設的user表,其中的字段已經可以滿足我們的日常需求。但有時候,我們需要更多的字段,我們就可以自定義。來替換django自帶的user表。models.py from django.contrib.auth.models import abstractuser class...

自定義TableviewIndex (右邊索引)

這個功能就很強大了,感謝這個效果的作者給了我極大的幫助,所以在分享我的 之前,先獻上這個效果的開源 scindexview。一,盡量不影響業務工程師原有 如果一定要影響,那麼影響最好降到最低。二,盡量不要把superview傳入subview中,以免引起迴圈持有。三,儘量減少使用邏輯判斷,而使用物件...

自定義約束名

除了新增資料庫提供的約束條件外,我們還可以自定義約束 自定義約束使用 constraint關鍵字實現 語法格式 constraint 約束名 約束型別 新增約束的欄位名 create table employee eno number 4 ename varchar2 12 sal number 8...