# project-->wood-->models.py
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
- 一般情况下一个模(这里指上述定义的类)对应于一个数据库表;
- 模型中的各个属性分别对应于数据库表中的一列;
- 属性的名称对应于列的名称;
- 字段的类型(如
CharField)对应于数据库列的类型(如varchar)。
比如:上面的Publisher 模型等效于下述CREATE TABLE 句法
# 这里的模型建表代码等价于CREATE TABLE 句法
CREATE TABLE "books_publisher" (
"id" serial NOT NULL PRIMARY KEY,
"name" varchar(30) NOT NULL,
"address" varchar(50) NOT NULL,
"city" varchar(60) NOT NULL,
"state_province" varchar(30) NOT NULL,
"country" varchar(50) NOT NULL,
"website" varchar(200) NOT NULL
);