model

2015-12-18  本文已影响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从模型字段的类型可以得知如下内容:

字段选项

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

关系

一对一

一对多


多对多

上一篇 下一篇

猜你喜欢

热点阅读