例項:我們來假定下面這些概念,欄位和關係
模型建立如下:
from django.db import models
# create your models here.
class author(models.model):
nid = models.autofield(primary_key=true)
name=models.charfield( max_length=32)
age=models.integerfield()
# 與authordetail建立一對一的關係
authordetail=models.onetoonefield(to="authordetail",on_delete=models.cascade)
class authordetail(models.model):
nid = models.autofield(primary_key=true)
birthday=models.datefield()
telephone=models.bigintegerfield()
addr=models.charfield( max_length=64)
class publish(models.model):
nid = models.autofield(primary_key=true)
name=models.charfield( max_length=32)
city=models.charfield( max_length=32)
email=models.emailfield()
class book(models.model):
nid = models.autofield(primary_key=true)
title = models.charfield( max_length=32)
publishdate=models.datefield()
price=models.decimalfield(max_digits=5,decimal_places=2)
# 與publish建立一對多的關係,外來鍵字段建立在多的一方
publish=models.foreignkey(to="publish",to_field="nid",on_delete=models.cascade)
# 與author表建立多對多的關係,manytomanyfield可以建在兩個模型中的任意乙個,自動建立第三張表
authors=models.manytomanyfield(to='author',)
注意事項:
id
欄位是自動新增的
對於外來鍵字段,django 會在欄位名上新增"_id"
來建立資料庫中的列名
這個例子中的create table
sql 語句使用postgresql 語法格式,要注意的是django 會根據settings 中指定的資料庫型別來使用相應的sql 語句。
外來鍵字段 foreignkey 有乙個 null=true 的設定(它允許外來鍵接受空值 null),你可以賦給它空值 none
Django 模型層 模型
django內建模型方法 乙個模型包含了資料的字段和操作方法,每個模型對映為一張資料庫中的表 person models.py from django.db import models class person models.model first name models.charfield max...
Django筆記 模型層
1 模型類定義 模型定義的基本結構 from django.db import models class modelname models.model field models.xxfield field models.xxfield class meta db table other metas ...
Django模型層 多表操作
方式1 publish obj publish.objects.get nid 1 book obj book.objects.create title publishdate 2012 12 12 price 100,publish publish obj 方式2 book obj book.ob...