欢迎访问宙启技术站
智能推送

Django.db.models中的字段选项有哪些

发布时间:2023-12-25 12:21:02

Django.db.models中的字段选项有很多,以下是常见的一些字段选项使用例子,每个选项的作用会在例子中进行说明。

1. max_length:指定字段的最大长度,常用于CharField和TextField。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)  # 字段最大长度为50
    bio = models.TextField(max_length=500)  # 字段最大长度为500

2. blank:指定字段是否可以为空。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50, blank=True)  # 字段可以为空
    age = models.IntegerField(blank=False)  # 字段不可为空,默认为False

3. null:指定字段是否允许存储NULL值,默认为False。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50, null=False)  # 字段不允许存储NULL值,默认为False
    birth_date = models.DateField(null=True)  # 字段允许存储NULL值

4. default:指定字段的默认值。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50, default="Unknown")  # 字段的默认值为"Unknown"
    age = models.IntegerField(default=0)  # 字段的默认值为0

5. choices:指定字段的选择项,通常用于CharField或IntegerField。

from django.db import models

GENDER_CHOICES = (
    ('M', 'Male'),
    ('F', 'Female'),
    ('O', 'Other')
)

class Person(models.Model):
    name = models.CharField(max_length=50)
    gender = models.CharField(max_length=1, choices=GENDER_CHOICES)  # 字段的选择项为GENDER_CHOICES

6. auto_now_add:指定字段在对象 次保存时自动设置为当前日期和时间。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)
    created_at = models.DateTimeField(auto_now_add=True)  # 字段在对象      次保存时自动设置为当前日期和时间

7. auto_now:指定字段在每次保存时自动更新为当前日期和时间。

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=50)
    updated_at = models.DateTimeField(auto_now=True)  # 字段在每次保存时自动更新为当前日期和时间

8. unique:指定字段的值是否 ,默认为False。

from django.db import models

class Person(models.Model):
    email = models.EmailField(unique=True)  # 字段的值必须      
    username = models.CharField(max_length=50, unique=False)  # 字段的值可以重复

9. primary_key:指定字段是否为主键,默认为False。

from django.db import models

class Person(models.Model):
    id = models.IntegerField(primary_key=True)  # 字段作为主键
    name = models.CharField(max_length=50)

这些只是常见的一些字段选项,Django还提供了更多高级的字段选项可以用于创建复杂的数据模型。在实际开发中,根据需要选择合适的字段选项来定义数据模型非常重要,以确保数据存储的准确性和安全性。