end38
parent
6dfeabb4d8
commit
931876175a
@ -1,37 +1,96 @@
|
|||||||
## Aplicar estilo a Servicios
|
## Creacion del Blog
|
||||||
|
|
||||||
- Utlizar parte el código de home.html como base de estilo.
|
Crear app ` python3 manage.py startapp blog `
|
||||||
- Reemplazar el contenido a mostrar, con los servicios.
|
Crear el modelo, una clase por elemento de las entradas del blog
|
||||||
` {{servicio.titulo}} ` y ` {{servicio.contenido}} `
|
|
||||||
- Cambiar las rutas de los `src="..."`
|
/blog/**models.py**
|
||||||
|
|
||||||
**servicios.html**
|
|
||||||
```
|
```
|
||||||
{% extends 'ProyectoWebApp/base.html' %}
|
from django.db import models
|
||||||
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
{% load static %}
|
# Create your models here.
|
||||||
|
|
||||||
{% block content %}
|
class Categoria(models.Model):
|
||||||
|
nombre = models.CharField( max_length = 50 )
|
||||||
|
created = models.DateTimeField( auto_now_add = True)
|
||||||
|
updated = models.DateTimeField( auto_now_add = True)
|
||||||
|
|
||||||
{% for servicio in servicios %}
|
class Meta:
|
||||||
|
verbose_name = 'categoria'
|
||||||
|
verbose_name_plural = 'categorias'
|
||||||
|
|
||||||
<!-- Heading -->
|
|
||||||
<section class="page-section clearfix">
|
def __str__(self):
|
||||||
<div class="container">
|
return self.nombre
|
||||||
<div class="intro">
|
|
||||||
<img class="intro-img img-fluid mb-3 mb-lg-0 rounded" src="{{servicio.imagen.url}}" alt="" style="width: 70%;">
|
|
||||||
<div class="intro-text left-0 text-center bg-faded p-5 rounded">
|
|
||||||
<h2 class="section-heading mb-4" >
|
|
||||||
<span class="section-heading-upper">{{servicio.titulo}}</span>
|
|
||||||
<span class="section-heading-lower" style="color: Tomato;">{{servicio.contenido}}</span>
|
|
||||||
</h2>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% endblock %}
|
class Entrada(models.Model):
|
||||||
|
titulo = models.CharField( max_length = 50 )
|
||||||
|
contenido = models.CharField( max_length = 50 )
|
||||||
|
|
||||||
|
autor = models.ForeignKey( User, on_delete = models.CASCADE )
|
||||||
|
categorias = models.ManyToManyField( Categoria )
|
||||||
|
|
||||||
|
imagen = models.ImageField( upload_to='blog', null=True, blank=True )
|
||||||
|
created = models.DateTimeField( auto_now_add = True)
|
||||||
|
updated = models.DateTimeField( auto_now_add = True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'entrada'
|
||||||
|
verbose_name_plural = 'entradas'
|
||||||
|
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.titulo
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Relación uno a muchos.
|
||||||
|
- Un User puede tener muchas entradas `ForeignKey(User, on_delete=models.CASCADE)`
|
||||||
|
*en este caso al eliminar un usuario, se eliminan sus entradas*
|
||||||
|
|
||||||
|
|
||||||
|
Relación muchos a muchos.
|
||||||
|
- Una categoría puede estar en varias entradas, y
|
||||||
|
- Una entrada puede pertencer varias categorias `ManyToManyField()`
|
||||||
|
|
||||||
|
### Registrar app Blog
|
||||||
|
|
||||||
|
**urls.py** del proyecto
|
||||||
```
|
```
|
||||||
|
...
|
||||||
|
|
||||||
|
INSTALLED_APPS = [
|
||||||
|
...
|
||||||
|
'blog',
|
||||||
|
]
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Crear migraciones y Migrar:
|
||||||
|
🔸️`python3 admin.py makemigrations`
|
||||||
|
|
||||||
|
|
||||||
|
🔸️`python3 admin.py migrate`
|
||||||
|
|
||||||
|
#### Administrar Blog
|
||||||
|
```
|
||||||
|
from django.contrib import admin
|
||||||
|
from .models import Categoria, Entrada
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
|
|
||||||
|
class CategoriaAdmin(admin.ModelAdmin):
|
||||||
|
readonly_fields = ('created', 'updated')
|
||||||
|
|
||||||
|
|
||||||
|
class EntradasAdmin(admin.ModelAdmin):
|
||||||
|
readonly_fields = ('created', 'updated')
|
||||||
|
|
||||||
|
|
||||||
|
admin.site.register(Categoria, CategoriaAdmin)
|
||||||
|
admin.site.register(Entrada, EntradasAdmin)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user