Git Product home page Git Product logo

django-admin's Introduction

django-admin

Un mini projet pour apprendre les bases en Django Admin.

Plugins:

Développement Pipenv

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/

Environnement avec pipenv

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

Première utilisation

Lors de la première utilisation, ne pas oublier de lancer la première migration.

$ ./manage.py migrate

Création d'un compte super utilisateur

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é.

Développement Docker

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/

Environnement avec docker

Pour installer docker, il vous suffit de suivre la documentation. Pour installer docker-compose, il vous suffit de suivre la documentation.

Première utilisation

Lors de la première utilisation, ne pas oublier de lancer la première migration.

$ docker-compose exec web ./manage.py migrate

Création d'un compte super utilisateur

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é.

Modification du thème/ReactJs

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

Projet

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.

Pour le modèle Product:

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.

Pour le modèle Customer:

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é.

Pour le modèle Invoice:

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'

Pour la page d'accueil:

STEP 18: Renomer l'App dans la page d'accueil de Django Admin

django-admin's People

Contributors

duboisr avatar rduboisdeuse avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.