• django_models_字段一


    字段选项

      null如果为True,Django将在数据库中把空值存储为NULL。 默认为False

      blank如果为True,该字段允许为空值, 默认为False

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

     

      choices由二项元组构成的一个可迭代对象(例如,列表或元组),用来给字段提供选择项。 如果设置了choices ,默认的表单将是一个选择框而不是标准的文本框,而且这个选择框的选项就是choices 中的选项。

    这是一个关于 choices 列表的例子:

    YEAR_IN_SCHOOL_CHOICES = (
        ('FR', 'Freshman'),
        ('SO', 'Sophomore'),
        ('JR', 'Junior'),
        ('SR', 'Senior'),
        ('GR', 'Graduate'),
    )

    每个元组中的第一个元素是将被存储在数据库中的值。 第二个元素将由默认窗体小部件或ModelChoiceField显示。 给定一个模型实例,可以使用get_FOO_display()方法来访问选项字段的显示值。 例如:

    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)

    >>> 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,那么这个字段就是模型的主键。

           如果你没有指定任何一个字段的primary_key=True,Django 就会自动添加一个IntegerField 字段做为主键,所以除非你想覆盖默认的主键行为,否则没必要设置任何一个字段的primary_key=True。 详见字段生成主键字段

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

      

    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)
    <QuerySet ['Apple', 'Pear']>
    

      unique如果为True, 则这个字段在整张表中必须是唯一的。

    自动主键字段
    默认情况下,Django 会给每个模型添加下面这个字段: id
    = models.AutoField(primary_key=True) 这是一个自增主键字段。 如果你想指定一个自定义主键字段,只要在某个字段上指定 primary_key=True 即可。 如果 Django 看到你显式地设置了 Field.primary_key,就不会自动添加 id 列。 每个模型只能有一个字段指定primary_key=True(无论是显式声明还是自动添加)。

     

    字段的自述名¶
    除ForeignKey、ManyToManyField 和 OneToOneField 之外,每个字段类型都接受一个可选的位置参数(在第一的位置) — 字段的自述名。 如果没有给定自述名,Django 将根据字段的属性名称自动创建自述名 —— 将属性名称的下划线替换成空格。 在这个例子中,自述名是
    "person's first name": first_name = models.CharField("person's first name", max_length=30) 在这个例子中,自述名是 "first name": first_name = models.CharField(max_length=30) ForeignKey、ManyToManyField 和 OneToOneField 都要求第一个参数是一个模型类,所以要使用 verbose_name 关键字参数才能指定自述名: poll = models.ForeignKey( Poll, on_delete=models.CASCADE, verbose_name="the related poll", ) sites = models.ManyToManyField(Site, verbose_name="list of sites") place = models.OneToOneField( Place, on_delete=models.CASCADE, verbose_name="related place", )
    习惯上,verbose_name 的首字母不用大写。 Django 在必要的时候会自动大写首字母。

     这些仅仅是常用字段的简短介绍, 要了解详细内容,请查看通用模型字段选项参考

  • 相关阅读:
    linux常用指令
    Can't create session svn: Unable to connect to a repository at URL “...”的解决方案
    Web前端之iframe详解
    html和js实现滚动条效果
    升级API证书(权威CA颁发)
    公众号生成带推荐码(场景id)的二维码
    小程序生成带推荐码(场景id)的二维码
    MySQL TEXT数据类型的最大长度
    微信退款全款退,退一部分,分开退一次以上区别跳坑[订单金额或退款金额与之前请求不一致]
    php RSA公钥私钥加解密和验证用法
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/11009795.html
Copyright © 2020-2023  润新知