8 Django的模型層 2

2022-03-07 11:27:54 字數 1578 閱讀 2595

例項:我們來假定下面這些概念,欄位和關係

模型建立如下:

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 tablesql 語句使用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...