Documente Academic
Documente Profesional
Documente Cultură
DjangoCampos de números
Ejemplo#
Se dan ejemplos de campos numéricos:
AutoField
class MyModel(models.Model):
pk = models.AutoField()
Cada modelo obtiene un campo de clave principal (llamado id ) de forma
predeterminada. Por lo tanto, no es necesario duplicar un campo de identificación
en el modelo para los fines de una clave principal.
BigIntegerField
class MyModel(models.Model):
number_of_seconds = models.BigIntegerField()
Campo integral
IntegerField se utiliza para almacenar valores enteros desde -2147483648 hasta
2147483647 ( 4 Bytes ).
class Food(models.Model):
name = models.CharField(max_length=255)
calorie = models.IntegerField(default=0)
default parámetro por default no es obligatorio. Pero es útil establecer un
valor predeterminado.
PositiveIntegerField
Como un campo Integer, pero debe ser positivo o cero (0). El PositiveIntegerField
se utiliza para almacenar valores enteros de 0 a 2147483647 ( 4 Bytes ). Esto
puede ser útil en un campo que debería ser semánticamente positivo. Por
ejemplo, si está registrando alimentos con sus calorías, no debería ser negativo.
Este campo evitará valores negativos a través de sus validaciones.
class Food(models.Model):
name = models.CharField(max_length=255)
calorie = models.PositiveIntegerField(default=0)
default parámetro por default no es obligatorio. Pero es útil establecer un
valor predeterminado.
SmallIntegerField
class Place(models.Model):
name = models.CharField(max_length=255)
temperature = models.SmallIntegerField(null=True)
PositiveSmallIntegerField
class Staff(models.Model):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
age = models.PositiveSmallIntegerField(null=True)
Además de PositiveSmallIntegerField es útil para las opciones, esta es la forma
Djangoic de implementar Enum:
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
)
...
La definición de las opciones como variables de clase o variables de módulo
según la situación es una buena manera de usarlas. Si se pasan opciones al
campo sin nombres amistosos, se creará confusión.
Campo decimal
class Place(models.Model):
name = models.CharField(max_length=255)
atmospheric_pressure = models.DecimalField(max_digits=5,
decimal_places=3)