Django 数字字段
示例
给出了数字字段的示例:
自动场
通常用于主键的自动递增整数。
fromdjango.dbimport modelsclass MyModel(models.Model):
pk = models.AutoField()
每个模型id默认都有一个主键字段(称为)。因此,不必出于主键的目的在模型中复制id字段。
BigIntegerField
-9223372036854775808到9223372036854775807(8 Bytes)的整数拟合数字。
fromdjango.dbimport modelsclass MyModel(models.Model):
number_of_seconds = models.BigIntegerField()
整数字段
IntegerField用于存储从-2147483648到2147483647(4 Bytes)的整数值。
fromdjango.dbimport modelsclass Food(models.Model):
name = models.CharField(max_length=255)
calorie = models.IntegerField(default=0)
default参数不是必需的。但是设置默认值很有用。
PositiveIntegerField
类似于IntegerField,但必须为正数或零。PositiveIntegerField用于存储0到2147483647(4 Bytes)之间的整数值。这在应该在语义上肯定的领域中很有用。例如,如果您正在记录含卡路里的食物,则它不应为负。该字段将通过其验证来防止出现负值。
fromdjango.dbimport modelsclass Food(models.Model):
name = models.CharField(max_length=255)
calorie = models.PositiveIntegerField(default=0)
default参数不是必需的。但是设置默认值很有用。
SmallIntegerField
SmallIntegerField用于存储-32768到32767(2 Bytes)之间的整数值。该字段适用于非极端值。
fromdjango.dbimport modelsclass Place(models.Model):
name = models.CharField(max_length=255)
temperature = models.SmallIntegerField(null=True)
PositiveSmallIntegerField
SmallIntegerField用于存储0到32767(2 Bytes)之间的整数值。就像SmallIntegerField一样,此字段对于不那么高的值很有用,并且在语义上应该为正。例如,它可以存储不能为负的年龄。
fromdjango.dbimport modelsclass Staff(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
age = models.PositiveSmallIntegerField(null=True)
除了PositiveSmallIntegerField对于选择有用之外,这也是实现Enum的Django方法:
fromdjango.dbimport modelsfrom django.utils.translation import gettext as _
APPLICATION_NEW = 1
APPLICATION_RECEIVED = 2
APPLICATION_APPROVED = 3
APPLICATION_REJECTED = 4
APLICATION_CHOICES = (
(APPLICATION_NEW, _('New')),
(APPLICATION_RECEIVED, _('Received')),
(APPLICATION_APPROVED, _('Approved')),
(APPLICATION_REJECTED, _('Rejected')),
)
class JobApplication(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
status = models.PositiveSmallIntegerField(
choices=APLICATION_CHOICES,
default=APPLICATION_NEW
)
...
根据情况将选择定义为类变量或模块变量是使用它们的好方法。如果将选项传递给没有友好名称的字段,则会引起混乱。
DecimalField
固定精度的十进制数字,在Python中由Decimal实例表示。与IntegerField及其派生类不同,此字段具有2个必填参数:
DecimalField.max_digits:数字中允许的最大位数。请注意,此数字必须大于或等于decimal_places。
DecimalField.decimal_places:与数字一起存储的小数位数。
如果要存储最多99个数字,保留小数点后3位,则需要使用max_digits=5和decimal_places=3:
class Place(models.Model):name = models.CharField(max_length=255)
atmospheric_pressure = models.DecimalField(max_digits=5, decimal_places=3)
以上是 Django 数字字段 的全部内容, 来源链接: utcz.com/z/347077.html