跳至主要內容

模型_字段的介绍

刘春龙原创...大约 2 分钟PythonDjango教程文档

模型类的属性对应数据库中表的字段,都是对应的 Field 类的实例

常见的字段

字段命名限制

  • 字母,数字,下划线,首字母不能是数字
  • 字段名称不能是 Python 保留字
  • 由于 Django 查询查找语法的工作方式,字段名称不能在一行中包含多个下划线,譬如“abc__123”就是不允许的,一个下划线是可以的,如:'first_name'

主键的使用

默认会自动创建一个自增,主键的 id 列

如果指定了 primary_key 为其它列,那么不会自动创建 id 列

例如:

id = models.AutoField(primary_key=True)

常见的字段列表

官方文档:https://docs.djangoproject.com/zh-hans/4.1/ref/models/fields/#field-typesopen in new window

字段名作用
AutoField自增一个 IntegerField,根据可用的 ID 自动递增
BooleanField该字段的默认表单部件是 checkbox,默认值是 None
CharField一个字符串字段
DateField一个日期,在 Python 中用一个 datetime.date 实例表示
DateTimeField一个日期和时间,在 Python 中用一个 datetime.datetime 实例表示
FloatField在 Python 中用一个 float 实例表示的浮点数
SmallIntegerField就是一个 IntegerField, -3276832767 的值
IntegerField一个整数。从 -21474836482147483647 的值
TextField一个大的文本字段。该字段的默认表单部件是一个 Textarea

特别的说明

import uuid
from django.db import models
class MyUUIDModel(models.Model):
  # uuid.uuid4 千万别写成 uuid.uuid4() ,不要写 ()
  id = models.UUIDField(primary_key=True, default=uuid.uuid4)

常见的属性

  • max_length:字段最大长度,用于字符串等,字符串类型 CharField 必须设置该值

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

  • blank:如果 True,该字段被允许为空白("")。默认是 False。

    注意

    这不同于 null。null 纯粹是与数据库相关的,而 blank 与验证相关。如果一个字段有 blank=True,表单验证将允许输入一个空值。如果一个字段有 blank=False,该字段将是必需的

  • choices:

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

    中文示例:SEX_CHOICES=((1, '男'),(2, '女'))

    元组中的第一个元素是将存储在数据库中的值,第二个元素是将在页面中显示的值,最常见用于下拉选择框 select

  • default:字段的默认值

  • help_text:用于显示额外的“帮助”文本

  • primary_key:如果 True,这个字段是模型的主键,默认是 False

  • unique:如果 True,该字段在整个表格中必须是唯一的

  • verbose*name:详细字段名,不指定则是属性名的小写,并且用 空格 替换 '_'

from django.db import models

class User(models.Model):
    first_name = models.CharField(max_length=32,default="刘春龙")
    last_name = models.CharField(max_length=32)
    phone_number = models.CharField(max_length=32,unique=True)
    class Meta:
        db_table = 't_user'
上次编辑于:
贡献者: 刘春龙
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.7