Django: Guía para la creación de un blog - Parte 3

Creación de modelos

En el archivo blog/models.py definimos todos los objetos llamados models. Definiremos para cada modelo, sus propiedades y el tipo de campo, (puedes echar un vistazo a la documentación de Django si quieres obtener más info sobre los distintos tipos de campos). Los modelos que vamos a crear son Post, Categoria y Autor.

from django.db import models
class Categoria(models.Model):
    id = models.AutoField(primary_key=True)
    nombre = models.CharField('
Nombre de la Categoría', max_length=90, null=False, blank=False)
    estado = models.BooleanField('Activo/No Activo', default=True)
    fecha_creacion = models.DateField('Fecha de Creación', auto_now=False, auto_now_add=True)
    fecha_publicado = models.DateField('Fecha de Publicado', blank=True, null=True)
    class meta(self):
        verbose_name = '
Categoria'
        verbose_name_plural = '
Categorias'
    def __str__(self):
        return self.nombre
class Autor(models.Model):
    id = models.AutoField(primary_key=True)
    nombre = models.CharField('
Nombre del Autor', max_length=90, null=False, blank=False)
    apellido = models.CharField('Apellido
del Autor', max_length=100, null=False, blank=False)
    facebook = models.
URLField('Facebook', null=True, blank=True)
    twitter = models.
URLField('Twitter', null=True, blank=True)
    instagram = models.
URLField('Instagram', null=True, blank=True)
    website = models.
URLField('Website', null=True, blank=True)
    correo = models.
EmailField('Correo Electrónico', null=False, blank=False)
    estado = models.BooleanField('
Activo/No Activo', default=True)
    fecha_creacion = models.DateField('Fecha de Creación', auto_now=False, auto_now_add=True)
    fecha_publicado = models.DateField('Fecha de Publicado', blank=True, null=True)
    class meta(self):
        verbose_name = 'Autor'
        verbose_name_plural = 'Autores'
    def __str__(self):
        return
"{0} {1}".format(self.nombre, self.apellido)
class Post(models.Model):
    id = models.AutoField(primary_key=True)
    titulo = models.CharField('Título', max_length=90, null=False, blank=False)
    slug = models.CharField('Slug', max_length=100, null=False, blank=False)
    descripcion = models.CharField('Descripción', max_length=110, null=False, blank=False)
    contenido = models.TextField()
    imagen = models.URLField('Imagen', max_length=255, null=False, blank=False)
    autor = models.ForeignKey(Autor, on_delete=models.CASCADE)
    categoria = models.ForeignKey(Categoria, on_delete=models.CASCADE)
    estado = models.BooleanField('Publicado/No Publicado', default=True)
    fecha_creacion = models.DateField('Fecha de Creación', auto_now=False, auto_now_add=True)
    fecha_publicado = models.DateField('Fecha de Publicado', blank=True, null=True)
    class meta(self):
        verbose_name = 'Post'
        verbose_name_plural = 'Posts'
    def __str__(self):
        return self.titulo

 

Agregar los modelos al admin

from django.contrib import admin
from .models import Categoria
from .models import Autor
from .models import Post
admin.site.register(Categoria)
admin.site.register(Autor)
admin.site.register(Post)

 

Creación de las tablas para los modelos

Por último debemos agregar nuestro nuevo modelo a la base de datos, para ello debemos ejecutar en consola el siguiente comando

python manage.py makemigrations

Veremos algo asi

Migrations for 'blog':
  blog/migrations/0001_initial.py
    - Create model Autor
    - Create model Categoria
    - Create model Post

y luego ejecutamos

python manage.py migrate

Y veremos algo asi

Operations to perform:
  Apply all migrations: admin, auth, blog, contenttypes, sessions
Running migrations:
  Applying blog.0001_initial... OK

Hasta aquí hemos creado nuestros modelos para la aplicación y sus respectivas tablas en la base de datos luego de ejecutar los comandos makemigrations y migrate.

Ahora, para crear, editar o borrar posts lo vamos a hacer desde el admin de Django, para eso tenemos que ingresar a 127.0.0.1:8000/admin/, lo que nos va a pedir para poder ingresar va a ser un usuario y contraseña. Vamos a crearlo ejecutando en la consola lo siguiente:

python manage.py createsuperuser

Con esto creamos un superusuario que tiene control sobre todo el sitio, a continuación nos va a pedir algunos datos, los llenamos y listo. Ingresamos con esas credenciales y ya podemos ver en el admin los modelos que creamos..

 

 


 

PARTE 2 PARTE 4