.. _challenge_1: .. index:: single: Challenge 1 Challenge 1: Lege ein Projekt an *********************************** Das waren jetzt einige Dinge, die wir besprochen haben. Um das Erlernte auch gleich anzuwenden, wartet jetzt eine Challenge auf dich! Neues Projekt Company ============================ Dein Kunde benötigt eine kleine Firmenverwaltung, die du natürlich mit Django umsetzen wirst. Es sollen Firmen und deren Angestellte in einer Django-App verwaltet werden können. Dazu muss erstmal ein neues Projekt (``company_project``) angelegt werden. Später müssen die Models erstellt und die Migrationen durchgeführt werden. Das User-Model wollen wir ebenfalls nicht vergessen. Auf Views und URLs verzichten wir im Moment. Das User-Model werden wir auch nicht weiter nutzen. Projekt erstellen ------------------------------------------ Lege ein neues Django-Projekt namens ``company_manager`` an, wie wir das im ersten Kapitel gesehen haben. Nutze das Programm ``django-admin`` und das Subkommando ``startproject``. Lege dazu auch ein neues virtuelles Environment an und installiere die nötigen Pakete. Die Settings müssen auch angepasst werden. Prüfe, ob der Runserver startet und die Django-Rakete im Browser angezeigt wird. Die App anlegen ------------------------------------------ Wenn das Django-Projekt erfolgreich angelegt wurde, lege jetzt eine neue App names ``company`` an. Nutze das das Subkommando ``startapp``. Die Models anlegen ------------------------------------------ Wir benötigen in der App zwei Modelle: Das Model ``Company`` sowie das Model ``Employee``. Der Employee ist mit der Company über eine ForeignKey-Beziehung verknüpft, es handelt sich also um eine 1:N Beziehung. Jede Firma hat N Angestellte, und jeder Angestellte ist genau einer Firma zugeordnet. **Die Company besitzt die Felder:** * name * description * company_type **Der Employee besitzt folgende Felder:** * firstname * lastname * age * company (ForeignKey) Erstelle die beiden Models und wähle dazu die passenden Feldtypen aus. Das Alter zum Beispiel sollte kein ``CharField`` sein. Verhindere, das die Employees gelöscht werden, wenn die Firma gelöscht wird, der sie zugeteilt sind (on_delete). Migrationen durchführen ------------------------------------------ Wenn die Models erstellt wurden, führe die Migrationen aus. Nutze dazu die Subkommandos ``makemigrations`` und ``migrate``. **Und jetzt: Viel Erfolg!** Wie das Ergebnis aussehen könnte, findest du unter diesem Link: ``_