Aprendiendo Django parte 2

Desarrollemos ahora una 'app' en django. La diferencia entre app y proyecto en django radica en algo tan simple como que una app puede estar en varios proyectos y un proyecto puede contener varias apps, pero un proyecto no puede contener a otros proyectos.

Lo primero creamos la app:

 python3 manage.py startapp agenda 


Esto nos crea una app en el proyecto con una serie de archivos. Nos vamos al archivo models.py para definir el modelo de datos que queremos.

Creamos los objetos Persona y Telefonos, teniendo este un enlace a Persona.

Añadimos 'agenda' al archivo settins.py en la parte de INSTALLED_APPS y ejecutamos el comando

 python manage.py makemigrations agenda 
 sudo python3 manage.py sqlmigrate agenda 0001 

nos saldra por pantalla las consultas sql que se generaran y ahora para ponerlo en la DB ejecutamos

 python3 manage.py migrate 

Jugando con la shell


Pongamos el comando python3 manage.py shell y juguemos un poco para comprobar si todo salió bien:

>>>from agenda.models import Persona
>>>p = Persona(nombre='paco, apellidos='perez', casado=False)
>>>p.nombre
'paco'
>>>p.save()
>>>len(Persona.objects.all())
1
>>>Persona.objects.all()[0].apellidos
'perez'
>>>exit()

Si comprobamos la base de datos veremos que hemos añadido una nueva fila a la tabla agenda_Persona.
Gracias a esta shell podremos hacer pruebas de forma sencilla sin tener que arrancar el servidor para comprobar las cosas.

Sigamos....

Como podemos ver si vamos, con el servidor arrancado, a 127.0.0.1:8000/admin podremos acceder al administrador de django. Para poner un usuario y poder entrar vamos a la consola, apagamos el servidor y ponemos:

python manage.py createsuperuser

Ahora vamos a 'agenda/admin.py' y registramos los objetos para poder manejarlos en el admin de la web añadiendo la linea

admin.site.register(Persona)

y para que se muestre correctamente como en la imagen pondremos dentro de la clase Persona un metodo __str__() con lo que queremos que se muestre
def __str__(self):
        return self.nombre + ' ' + self.apellidos

Me acabo de dar cuenta de que el administrador esta en ingles, para cambiarlo a castellano, simplemente vayan al archivo settings.py y en la linea LANGUAGE_CODE  pongan 'es-es'.





Y aqui termino porque me explotó la cabeza los siguientes pasos.... me lo tomare con calma

Feliz y prospero 2015






Comentarios