Atributos comunes
Atributos de uso general:
db_column: establece el nombre que puede ser asignado a la columna de la tabla en la base de datos
default: establece el valor que debera tenerl el campo por default.
null: permite que el campo sea guardado en la base sin contenido ingresado por el usuario y en la base de datos se guardara NULL como valor.
blanck: Permite que el campo sea guardado en la base sin contenido ni información.
verbose_name: establece el nombre de la etiqueta
unique: permite la verificación del campo en la BD, de manera que no puedan introducirse valores repetidos.
Atributos especiales:
Para campos de texto:
max_lenght: establece el maximo de caracteres que el campo puede admitir.
Para campos de archivo:
upload_to: establece la ruta en disco donde el servidor debera guardar los archivos subidos a la plataforma.
Para campos con numericos decimales:
max_digits: establece el maximo de cifras permitidas por el campo
decimal_places: establece el maximo de cifras decimales permitidas por el campo.
Tipos de campos:
AutoFild: permite insertar un campo autonumerable que es gestionado por la base de datos, este campo no es desplegado por las vistas.CharField: permite agregar texto.
TextField: permite agregar texto, este sin embargo tiene el aspecto de un cuadro para comentarios o textos extensos.
BooleanField: permite guardar información del tipo verdadero o falso, en la base de datos se guarda respectivamente un 1 (verdadero) o un 0 (falso) segun corresponda. Este campo se despliega en pantalla como un checkbox.
DateField: permite almacenar la fecha
DateTimeField: similar al anterior pero permite agregar información como la hora.
IntegerField: permite agregar campos de numeros enteros.
DurationField: permite agregar tiempos de duración en formato de Dias horas:minutos:segundos eje 3d 2:20:20 esto es 3 dias con 20h con 20m y 20 segundos.
EmailField: permite introducir correos electronicos, este campo es verificado automaticamete por django
URLField: permite almacenar direcciones de internet.
FilePathField: permite almacenar una ruta a un archivo en el disco local del servidor, en pantalla es mostrado como una lista desplegable donde aparecen los nombres de cada archivo.
FileField: permite subir archivos al servidor
ImageField: permite subir imagenes al servidor, este ademas tiene incorporado un sistema de verificación para comprobar que el archivo subido sea efectivamente una imagen.
En resumen tenemos la siguiente recopilación de campos y los tipos de atributos que podemos manejar dentro de django, existen muchos mas, sin embargo te invito a investigar por tu cuenta, te recomiendo este sitio, tiene información muy completa del tema: http://aprendedjango.blogspot.com/2013/11/modelos-en-django.html
Tipo de campo | Descripción | Tipos de atributos que puede usar |
AutoFild
|
Permite insertar un campo autonumerable que es gestionado por la base de datos, este campo no es desplegado por las vistas.
|
db_column
verbose_name
unique
|
CharField:
|
permite agregar texto.
|
db_column
verbose_name
unique
null
blank
max_lenght:
|
BooleanField
|
permite guardar información del tipo verdadero o falso, en la base de datos se guarda respectivamente un 1 (verdadero) o un 0 (falso) segun corresponda. Este campo se despliega en pantalla como un checkbox.
DateField: permite almacenar la fecha
|
db_column
verbose_name
|
DateField
|
permite almacenar la fecha
|
unique_for_date
unique_for_month
unique_for_year
auto_now
auto_now_add
db_column
verbose_name
unique
null
blank
|
DateTimeField
|
similar al anterior pero permite agregar información como la hora.
|
unique_for_date
unique_for_month
unique_for_year
auto_now
auto_now_add
db_column
verbose_name
unique
null
blank
|
IntegerField:
|
permite agregar campos de numeros enteros.
|
db_column
verbose_name
unique
null
blank
|
DurationField
|
permite agregar tiempos de duración en formato de Dias horas:minutos:segundos eje 3d 2:20:20 esto es 3 dias con 20h con 20m y 20 segundos.
|
db_column
verbose_name
unique
null
blank
|
EmailField
|
permite introducir correos electronicos, este campo es verificado automaticamete por django
|
db_column
verbose_name
unique
null
blank
|
URLField
|
permite almacenar direcciones de internet.
|
db_column
verbose_name
unique
null
blank
|
FilePathField
|
permite almacenar una ruta a un archivo en el disco local del servidor, en pantalla es mostrado como una lista desplegable donde aparecen los nombres de cada archivo.
|
db_column
verbose_name
unique
null
blank
path
match
recursive
allow_files
allow_folders
|
FileField
|
permite subir archivos al servidor
|
db_column
verbose_name
unique
null
blank
upload_to
|
ImageField
|
permite subir imagenes al servidor, este ademas tiene incorporado un sistema de verificación para comprobar que el archivo subido sea efectivamente una imagen.
|
db_column
verbose_name
unique
null
blank
upload_to
|
Para demostrar un ejemplo rapido del uso de estos campos crearemos un proyecto con una aplicación cuyo modelo manejara la siguiente información.
from django.db import models import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) class ejemplo(models.Model): campo1= models.AutoField(primary_key=True, verbose_name="ID",db_column="PK", unique=True) campo2=models.CharField(max_length=20,db_column="Texto",verbose_name="Campo de texto",default="Hola mundo", null=True, blank=True) campo3=models.TextField(db_column="Area_Texto", verbose_name="Area de texto", blank=True) campo4=models.BooleanField(db_column="Booleano", verbose_name="Campo V/F", default=True) campo5=models.DateField(db_column="Fecha", verbose_name="Fecha", help_text="dd/mm/aaaa") campo6=models.DateTimeField(db_column="FechaYHora", verbose_name="Hora y Fecha", ) campo7=models.DecimalField(db_column="Decimales",verbose_name="# Decimales",max_digits=5, decimal_places=2) campo8=models.IntegerField(db_column="Enteros", verbose_name="# Enteros") campo9=models.DurationField(db_column="Duracion", verbose_name="Duracion") campo10=models.EmailField(db_column="Email", verbose_name="Email") campo11=models.URLField(db_column="Links", verbose_name="Link URL", default="", blank=True) campo12=models.FilePathField(db_column="File_Selector",path=BASE_DIR+"/media/imagenes", verbose_name="Selector de Archivos", default="") campo13=models.FileField(db_column="File",upload_to=BASE_DIR+"/media/archivos", verbose_name="Subir Archivo", default="") campo14=models.ImageField(db_column="image",upload_to=BASE_DIR+"/media/imagenes", verbose_name="Subir Imagen",default="")
Y para hacer funcionar esto debemos agregar en el archivo settings (ademas de toda la configuración que ya sabemos) las siguientes lineas de codigo.
MEDIA_ROOT="/"
MEDIA_URL="/media/"
Esto generara una vista como la siguiente:
Si ingresamos datos y guardamos
Los archivos de imagen deberan subirse a nuestra carpeta imagenes
Los archivos comunes deberian subirse a nuestra carpeta archivos
Y el resto de la información debe guardarse en nuestra BD, en este caso los campos vacios fueron guardados debido a las propiedades Null y blanck de los campos. En este caso el registro 6 representa nuestros datos agregados.
Comentarios
Publicar un comentario