Un mini projet pour apprendre les bases en Django Admin.
Plugins:
Pour lancer le projet localement sur votre machine de développement:
$ pipenv shell
$ ./manage.py runserver
Vérifier que le projet se lance bien sur http://localhost:8000/
Pour installer pipenv, il vous suffit de suivre la documentation. Ou bien simplement de lancer la commande suivantes
pip install --user pipenv
Il faut ensuite se mettre dans le dossier qui contient le fichier Pipfile
(dans notre cas le dossier app
)
Installer l'environnement :
$ pipenv install
Installer les packages utiles au debug :
$ pipenv install --dev
Lorsqu'on veut installer un nouveau paquet, ne pas utiliser pip install
mais pipenv install
, cela l'ajoutera automatiquement au fichier Pipfile
.
Utiliser l'environnement :
$ pipenv shell
Maintenant on peut lancer toutes les commandes migrate.py
Lors de la première utilisation, ne pas oublier de lancer la première migration.
$ ./manage.py migrate
Pour créer un compte super utilisateur:
$ ./manage.py createsuperuser
Il vous suffit ensuite de vous connecter à la page d'administration Django avec les identifiants que vous avez renseigné.
Pour lancer le projet localement sur votre machine de développement:
$ docker-compose up -d --build
Vérifier que le projet se lance bien sur http://localhost:8000/
Pour installer docker, il vous suffit de suivre la documentation. Pour installer docker-compose, il vous suffit de suivre la documentation.
Lors de la première utilisation, ne pas oublier de lancer la première migration.
$ docker-compose exec web ./manage.py migrate
Pour créer un compte super utilisateur:
$ docker-compose exec web ./manage.py createsuperuser
Il vous suffit ensuite de vous connecter à la page d'administration Django avec les identifiants que vous avez renseigné.
Nous utilisons Webpack pour concaténer/minifier/bunble nos fichiers JS + SCSS.
Version NVM / NPM
$ nvm list
[...]
-> v15.3.0
default -> node (-> v15.3.0)
node -> stable (-> v15.3.0) (default)
stable -> 15.3 (-> v15.3.0) (default)
[...]
$ npm --version
7.0.14
Pour lancer le watcher de webpack
$ cd app/assets
$ npm install
$ npm run watch
Pour faire un build pour la mise en prod
$ cd app/assets
$ npm run build
Ce mini projet a été mis en place pour vous permettre de découvrir/apprendre/perfectionner les bases en Django Admin. Une première App Django (invoice1) sera créée et utilisera la mise en page de Django Admin basique. La seconde App Django (invoice2) utilisera quant à elle une mise en page de Django Admin customisée.
Un, deux, trois... c'est partie.
STEP 1: Afficher le modèle 'Product' dans l'admin
STEP 2: Ajout des Meta classes. (Modèle 'Product')
STEP 3: Ajout du list_display dans le 'ProductAdmin' afin d'afficher les champs voulus dans le tableau de la liste 'Product'.
STEP 4: Ajout des methodes str + utilisation dans le Tableau de Django Admin. (Pour Product, ceci nous permettra de tronquer la description à 25 caractères)
STEP 5: Ajout du 'search_fields' qui nous permet de faire une recherche textuelle sur les champs selectionnées.
STEP 6: Ajout du 'readonly_fields' afin de bloquer le contenu d'un champ precis.
STEP 7: Afficher le modèle 'Customer' dans l'admin + Utilisation de la méthode str
STEP 8: Ajout du 'list_filter' qui nous permet de faire une recherche sur les champ selectionnées.
STEP 9: Création d'un 'SimpleListFilter' pour remplacer le filtre sur 'company_name.
STEP 10: Améliorer la page de rendu sur le formulaire de création/modification du modèle 'Customer'.
STEP 11: Ajout du 'inlines' qui nous permet d'afficher les adresses liées au modèle 'Customer' selectionné.
STEP 11: Afficher le modèle 'Invoice' dans l'admin
STEP 12: Ajout du 'date_hierarchy' qui nous permet de filtrer les modèle 'Invoice' sur une date bien précisse.
STEP 13: Ajout du 'actions' qui nous permet d'executer du code python sur les éléments selectionnés.
STEP 14: Améliorer la page de rendu sur le formulaire de création/modification du modèle 'Invoice'.
STEP 15: Ajouter le 'autocomplete_fields' qui permet de remplacer un select par un autocomplete.
STEP 16: Dynamiser la page Facture
STEP 17: Faire un lien entre le modèle 'Customer' et 'Invoice'
STEP 18: Renomer l'App dans la page d'accueil de Django Admin