django

django模型model字段说明

2018-08-22  本文已影响43人  陆_志东

简单示例

from django.db import models

class Person(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=30)

使用模型

django 1.8是直接在install_app里面添加app的名字即可
INSTALLED_APPS = (
    #...
    'myapp',
    #...
)
django2.0之后会在应用文件夹下生成一个apps.py,里面有应用的配置类,注册需要添加该配置类
INSTALLED_APPS = (
    #...
    'myapp.apps.MyappConfig',
    #...
)

字段选项

null

指定数据库存储空值的方式,是数据库范畴
如果为True,Django 将会把数据库中空值保存为NULL。默认值是 False.
为False,字符串字段存储为空字符,整数存储为0,布尔存储为False,时间存储为zero

blank

指定输入字段是否为空.
如果为True,该字段允许为空值,默认为False。
要注意,这与null不同。null纯粹是数据库范畴,指数据库中字段内容是否允许为空,而 blank是表单数据输入验证范畴的。
如果一个字段的blank=True,表单的验证将允许输入一个空值。如果字段的blank=False,该字段就是必填的

choise

由二项元组构成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,
默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选项。
YEAR_IN_SCHOOL_CHOICES = (
    ('FR', 'Freshman'),
    ('SO', 'Sophomore'),
    ('JR', 'Junior'),
    ('SR', 'Senior'),
    ('GR', 'Graduate'),
)
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)

每个元组中的第一个元素,是存储在数据库中的值;第二个元素是在管理界面或 ModelChoiceField 中用作显示的内容。
 在一个给定的 model 类的实例中,想得到某个 choices 字段的显示值,
就调用 get_FOO_display 方法(这里的 FOO 就是 choices 字段的名称 )。例如:
>>> p = Person(name="Fred Flintstone", shirt_size="L")
>>> p.save()
>>> p.shirt_size
'L'
>>> p.get_shirt_size_display()
'Large'

default
字段的默认值。可以是一个值或者可调用对象。如果可调用 ,每个新对象被创建它都会被调用。
help_text
表单部件额外显示的帮助内容。即使字段不在表单中使用,它对生成文档也很有用。
primary_key
如果为True,那么这个字段就是模型的主键
如果你没有指定任何一个字段为主键,django会自动生成一个主键字段

from django.db import models

class Fruit(models.Model):
    name = models.CharField(max_length=100, primary_key=True)

主键字段是只读的。如果你在一个已存在的对象上面更改主键的值并且保存,一个新的对象将会在原有对象之外创建出来。

>>> fruit = Fruit.objects.create(name='Apple')
>>> fruit.name = 'Pear'
>>> fruit.save()
>>> Fruit.objects.values_list('name', flat=True)
['Apple', 'Pear']

unique
如果该值设置为 True, 这个字段中的每个数据在整张表中都必须是唯一的,即数据库中这列的数据不允许出现重复
注意外键字段ForeignKey和文件字段FileFiled不可以使用该属性
当使用了unique属性之后,相当于给这列创建了数据库索引
unique_for_date
例如,你有一个title 字段设置unique_for_date="pub_date",那么Django 将不允许两个记录具有相同的title 和pub_date。

verbose_name
字段的自述名
如果没有给定自述名,Django 将根据字段的属性名称自动创建自述名 —— 将属性名称的下划线替换成空格。

poll = models.ForeignKey(Poll, verbose_name="the related poll")
上一篇下一篇

猜你喜欢

热点阅读