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