Sunteți pe pagina 1din 3

TIPOS DE DATOS DJANGO

DjangoCampos de números

Bring your team together with Slack, the


collaboration hub for work.ads via Carbon

Ejemplo#
Se dan ejemplos de campos numéricos:

AutoField

Un entero auto-incremental generalmente usado para claves primarias.

from django.db import models

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

Un número entero de ajuste de -


9223372036854775808 a 9223372036854775807 ( 8 Bytes ).

from django.db import models

class MyModel(models.Model):
number_of_seconds = models.BigIntegerField()

Campo integral
IntegerField se utiliza para almacenar valores enteros desde -2147483648 hasta
2147483647 ( 4 Bytes ).

from django.db import models

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.

from django.db import models

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

SmallIntegerField se utiliza para almacenar valores enteros de -32768 a 32767


( 2 Bytes ). Este campo es útil para que los valores no sean extremos.

from django.db import models

class Place(models.Model):
name = models.CharField(max_length=255)
temperature = models.SmallIntegerField(null=True)

PositiveSmallIntegerField

SmallIntegerField se utiliza para almacenar valores enteros de 0 a 32767 ( 2


Bytes ). Al igual que SmallIntegerField, este campo es útil para valores que no
son tan altos y debería ser semánticamente positivo. Por ejemplo, puede
almacenar la edad que no puede ser negativa.

from django.db import models

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:

from django.db import models


from 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
)
...
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

Un número decimal de precisión fija, representado en Python por una instancia


decimal. A diferencia de IntegerField y sus derivados, este campo tiene 2
argumentos requeridos:

1. DecimalField.max_digits : el número máximo de dígitos permitido en el


número. Tenga en cuenta que este número debe ser mayor o igual que
decimal_places.
2. DecimalField.decimal_places : El número de lugares decimales para
almacenar con el número.

Si desea almacenar números de hasta 99 con 3 lugares decimales necesita


usar max_digits=5 y decimal_places=3 :

class Place(models.Model):
name = models.CharField(max_length=255)
atmospheric_pressure = models.DecimalField(max_digits=5,
decimal_places=3)

S-ar putea să vă placă și