abstract 抽象類
class
human
(models.model)
: name=models.
charfield
(max_length=
100)
gender_choice=
((u'm'
,u'male'),
(u'f'
,u'female'),
) gender=models.
charfield
(max_length=
2,choices=gender_choice,null=true)
class
meta
:abstract
=true
managed=true
abstract 這個屬性是定義當前的模型類是不是乙個抽象類。
所謂抽象類是不會生成相應資料庫表的。
一般我們用它來歸納一些公共屬性字段,然後繼承它的子類能夠繼承這些字段。
managed django會自動生成對映的資料庫表,設定成managed=false,就不會生成對映資料表
db_table 重寫資料庫表名稱
class
book
(models.model)
: name =models.
charfield
(max_length=32)
def __str__
(self)
:return self.name
class
meta
: db_table =
"book"
預設情況下,django 會根據模型類的名稱和包含它的應用的名稱自動指定資料庫表名稱。eg:
blog_type
使用 meta類中的 db_table 引數來重寫資料表的名稱
managed 管理表的建立、刪除
1.預設為true,意思是django在migrate命令中建立合適的資料表,並且會在 flush 管理命令中移除它們。換句話說,django會管理這些資料表的生命週期。
2.如果是false,django 就不會為當前模型建立和刪除資料表。如果當前模型表示乙個已經存在的,通過其它方法建立的資料庫檢視或者資料表,這會相當有用。
3.當設定為managed=false時,需要注意一下幾點:
- 如果你不宣告它的話,會向你的模型中新增乙個自增主鍵。為了避免給後面的**讀者帶來混亂,強烈推薦你在使用未被管理的模型時,指定資料表中所有的列。
- 如果乙個帶有managed=false的模型含有指向其他未被管理模型的manytomanyfield,那麼多對多連線的中介表也不會被建立。
- 但是,乙個被管理模型和乙個未被管理模型之間的中介表會被建立。
- 如果你需要修改這一預設行為,建立中介表作為顯式的模型(設定為managed),並且使用manytomanyfield.through為你的自定義模型建立關聯。
- 對於帶有managed=false的模型的測試,你要確保在測試啟動時建立正確的表。
ordering 排序
物件預設的順序,獲取乙個物件的列表時使用:
ordering =
['-order_date'
]它是乙個字串的列表或元組。每個字串是乙個欄位名,前面帶有可選的「-」字首表示倒序。前面沒有「-」的字段表示正序。使用"?"來表示隨機排序。
1.例如,要按照pub_date欄位的正序排序,這樣寫: ordering =
['pub_date'
]2.按照pub_date欄位的倒序排序,這樣寫: ordering =
['-pub_date'
]3.先按照pub_date的倒序排序,再按照 author 的正序排序,這樣寫: ordering =
['-pub_date'
,'author'
]
unique_together 新增unique
用來設定的不重複的字段組合:unique_together =((
"driver"
,"restaurant"),
)1.它是乙個元組的元組,組合起來的時候必須是唯一的。
2.它在django後台中被使用,在資料庫層上約束資料(比如,在 create table 語句中包含 unique語句)。
為了方便起見,處理單一欄位的集合時,unique_together 可以是一維的元組:unique_together =
("driver"
,"restaurant"
)
index_together 新增索引
用來設定帶有索引的字段組合:
index_together =[[
"pub_date"
,"deadline"],
]列表中的字段將會建立索引(例如,會在create index語句中被使用)。
為了方便起見,處理單一欄位的集合時,index_together可以是乙個一維的列表:index_together =
["pub_date"
,"deadline"
]
django刪除資料表以及對資料表進行改動更新
實在是氣的不行,被坑的太難受了,為了防止有人繼續走彎路,我來寫這篇文章了。本人屬於大學需要做專案,自己摸索著使用django,所以最開始django的資料庫就是個老大難的問題,當我生成的資料表我想刪除時,我去網上查了很多解答,那些辦法不僅複雜的不行,還無數次的把我的資料庫整崩,然後我就不斷的重新建新...
根據資料表中資料,生成Powerpoint幻燈片
曾經有乙個問題,一直困擾我很久。由於工作的需要,經常需要把access資料表的內容,製作成powerpoint幻燈片,常常在做大量的單調的重複的簡單勞動。作為乙個程式設計的愛好者,最不願意做的就是這種簡單機械的事情。那麼,如何根據資料表中資料,生成powerpoint幻燈片呢?我的具體要求是這樣的 ...
提取資料表中資料生成html
1.在做辦公自動化的時候,通常會遇到這樣的問題,需要從資料庫中提取資料.生成html語句 2.傳送htm到郵件中去 public static dataset getdataset string strcommandstring,string strtablename 取得ds using syst...