Django模型层的字段类型
Django模型层的字段类型决定了数据库中字段的数据类型。在Django中,每个模型都是由字段构成的。这些字段描述了模型的属性,并指定了它们在数据库中的数据类型。Django提供了许多字段类型,包括文本字段、整数字段、日期字段、时间字段等。
CharField
CharField是一个存储字符串的字段类型。它的max_length参数指定了该字段可以存储的最大长度。例如,以下代码定义了一个存储标题的CharField:
代码语言:javascript复制from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
# ...
TextField
TextField是一个存储文本的字段类型。它的max_length参数是可选的,因为TextField可以存储任意长度的文本。例如,以下代码定义了一个存储内容的TextField:
代码语言:javascript复制from django.db import models
class Article(models.Model):
# ...
content = models.TextField()
IntegerField
IntegerField是一个存储整数的字段类型。它的参数可以指定整数的最小值和最大值。例如,以下代码定义了一个存储年龄的IntegerField:
代码语言:javascript复制from django.db import models
class Person(models.Model):
age = models.IntegerField()
# ...
DateField
DateField是一个存储日期的字段类型。它的参数可以指定日期的格式。例如,以下代码定义了一个存储生日的DateField:
代码语言:javascript复制from django.db import models
class Person(models.Model):
# ...
birthday = models.DateField()
DateTimeField
DateTimeField是一个存储日期和时间的字段类型。它的参数可以指定日期和时间的格式。例如,以下代码定义了一个存储创建时间的DateTimeField:
代码语言:javascript复制from django.db import models
class Article(models.Model):
# ...
create_time = models.DateTimeField(auto_now_add=True)
BooleanField
BooleanField是一个存储布尔值的字段类型。它的值可以是True或False。例如,以下代码定义了一个存储是否已发布的BooleanField:
代码语言:javascript复制from django.db import models
class Article(models.Model):
# ...
is_published = models.BooleanField(default=False)
ForeignKey
ForeignKey是一个存储其他模型的主键的字段类型。它指定了该字段引用的另一个模型的名称。例如,以下代码定义了一个存储作者的ForeignKey:
代码语言:javascript复制from django.db import models
class Article(models.Model):
# ...
author = models.ForeignKey('Author', on_delete=models.CASCADE)
class Author(models.Model):
name = models.CharField(max_length=100)
# ...
在这个例子中,Article模型中的author字段是一个ForeignKey,它引用了另一个模型Author的主键。在创建Article对象时,我们需要指定一个Author对象,或者使用Author对象的ID。