model

作者: 无缝的蛋 | 来源:发表于2015-12-18 20:24 被阅读0次

定义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关键字字段):

关系

一对一

一对多


多对多

相关文章

网友评论

      本文标题:model

      本文链接:https://www.haomeiwen.com/subject/uviphttx.html