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

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
Comentarios
Publicar un comentario