model

定义model的方式

# models.py
from django.db import models
class Person(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=30)   

告诉django使用这些模型

首先修改settings.py文件,把model所在的app添加到 INSTALLED_APPS这个列表变量中。

# settings.py中
INSTALLED_APPS = [
    #...
    'myapp', 
    #...
]

执行如下命令

python manage.py makemigrations #可选步骤
python manage.py migrate

字段

模型中的每个字段对应一个数据库表字段。
django从模型字段的类型可以得知如下内容:

  • 对应的数据库字段的类型
  • 默认的该字段在页面上渲染时所用的HTML小部件类型
  • 实现基础的字段值合法性校验

字段选项

null

是否把空值存储为NULL。默认为FALSE。

blank

字段是否允许为空。默认为FALSE。
与null不同:blank是校验层面的空值空值,null是数据库层面的空值空值。blank=true,则输入表单字段允许不输入;blank=false,则输入表单字段必填。

choices

枚举值字段。定义格式:

from django.db import models
class Person(models.Model): 
    SHIRT_SIZES = ( 
        ('S', 'Small'), 
        ('M', 'Medium'), 
        ('L', 'Large'),
    )
    name = models.CharField(max_length=60) 
    shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES)

python控制台输入:
p = Person(name="Fred Flintstone", shirt_size="L")
p.save()
p.shirt_size
'L'
p.get_shirt_size_display()
'Large'

default

默认值。可以是一个值,也可以是一个callable。callable在每次创建新对象的时候调用。

help_text

显示在表单上的帮助。对于不显示在表单上的字段,这个可以起到备注作用。

primary_key

表示这个字段用作主键。如果没有一个字段被指定为primary_key,django会自动生成一个自增字段作为主键。django生成的字段是的业务逻辑和主键得以分开,是推荐的主键方式。

unique

表示这个字段是唯一字段

可视字段名称

一般字段定义的时候,可以用第一个位置参数指定一个可视字段名称。如果不指定,会自动使用定义时候的变量名,把下划线替换为空格。
下面三个字段的第一个位置参数是model对象,因此可视字段名称的指定方式有所不同(通过verbose_name关键字字段):

关系

一对一

一对多


多对多

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Django Model 定义语法 版本:1.7主要来源:https://docs.djangoproject.c...
    罗田阅读 31,066评论 2 42
  • 前言 根据前几篇文章的分享已经了解djangoWeb开发一般步骤为:创建虚拟环境安装django创建项目创建应用在...
    博行天下阅读 1,137评论 0 2
  • 模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。通常,每个模型对应数据库中唯一的一张表。...
    戴维得阅读 2,866评论 0 1
  • 晓林网 自建博客学习问题及解决办法 红字 数据库设置 做网站就不能离开数据库,除非你是做静态网站。django中可...
    Double_E阅读 1,271评论 0 2
  • Django Model Meta options Django版本:1.7主要来源:https://docs.d...
    罗田阅读 2,624评论 0 8