replace some points directly beneath gwift chapter

This commit is contained in:
Fred Pauchet 2017-03-15 21:05:49 +01:00
parent bbe67bf854
commit a1e9f3eeb6
15 changed files with 64 additions and 63 deletions

View File

@ -1,6 +1,6 @@
===========
Formulaires
===========
========================================
Formulaires: comment valider des données
========================================
Quand on parle de ``forms``, on ne parle pas uniquement de formulaires Web. On pourrait considérer qu'il s'agit de leur objectif principal, mais on peut également voir un peu plus loin: on peut en fait voir les ``forms`` comme le point d'entrée pour chaque donnée arrivant dans notre application: il s'agit en quelque sorte d'un ensemble de règles complémentaires à celles déjà présentes au niveau du modèle.

View File

@ -10,4 +10,18 @@ La première chose à faire est de définir nos besoins du point de vue de l'uti
Ensuite, nous pourrons traduire ces besoins en fonctionnalités et finalement effectuer le développement
.. include:: specs/00-specs.rst
.. include:: gwift/00-specs.rst
.. include:: gwift/01-models.rst
.. include:: gwift/tests.rst
.. todo:: Ajouter pourquoi on hérite de ``models.Model``, etc.
.. include:: gwift/key-points.rst
.. include:: gwift/refactoring.rst
.. include:: gwift/user-management.rst
.. include:: gwift/console.rst
.. include:: gwift/metamodel.rst

View File

@ -137,3 +137,41 @@ Ceci nous donne après implémentation:
email = models.CharField(email = models.CharField(max_length=255, unique=True)
************
Modélisation
************
L'ORM de Django permet de travailler uniquement avec une définition de classes, et de faire en sorte que le lien avec la base de données soit géré uniquement de manière indirecte, par Django lui-même. On peut schématiser ce comportement par une classe = une table.
Comme on l'a vu dans la description des fonctionnalités, on va *grosso modo* avoir besoin des éléments suivants:
* Des listes de souhaits
* Des éléments qui composent ces listes
* Des parts pouvant composer chacun de ces éléments
* Des utilisateurs pour gérer tout ceci.
Nous proposons dans un premier temps d'éluder la gestion des utilisateurs, et de simplement se concentrer sur les fonctionnalités principales.
Cela nous donne ceci:
.. code-block:: python
# wish/models.py
from django.db import models
class Wishlist(models.Model):
pass
class Item(models.Model):
pass
class Part(models.Model):
pass
Les classes sont créées, mais vides. Entrons dans les détails.

View File

@ -13,16 +13,13 @@ Contents:
:numbered:
intro
specs
models
tests
gwift
integration
production
mvc
forms
auth
admin
docs
integration
production
summary
Indices and tables

View File

@ -16,3 +16,5 @@ Django se présente comme un `Framework Web pour perfectionnistes ayant des dead
.. include:: intro/02-create-django-app.rst
.. include:: intro/03-before-going-further.rst
.. include:: intro/04-docs.rst

View File

@ -1,6 +1,6 @@
**********************
Une application Django
**********************
*******************
L'espace de travail
*******************
Comme on l'a vu ci-dessus, ``django-admin`` permet de créer un nouveau projet. On fait ici une distinction entre un **projet** et une **application**:

View File

@ -1,50 +0,0 @@
============
Modélisation
============
L'ORM de Django permet de travailler uniquement avec une définition de classes, et de faire en sorte que le lien avec la base de données soit géré uniquement de manière indirecte, par Django lui-même. On peut schématiser ce comportement par une classe = une table.
Comme on l'a vu dans la description des fonctionnalités, on va *grosso modo* avoir besoin des éléments suivants:
* Des listes de souhaits
* Des éléments qui composent ces listes
* Des parts pouvant composer chacun de ces éléments
* Des utilisateurs pour gérer tout ceci.
Nous proposons dans un premier temps d'éluder la gestion des utilisateurs, et de simplement se concentrer sur les fonctionnalités principales.
Cela nous donne ceci:
.. code-block:: python
# wish/models.py
from django.db import models
class Wishlist(models.Model):
pass
class Item(models.Model):
pass
class Part(models.Model):
pass
Les classes sont créées, mais vides. Entrons dans les détails.
.. todo:: Ajouter pourquoi on hérite de ``models.Model``, etc.
.. include:: models/models.rst
.. include:: models/key-points.rst
.. include:: models/refactoring.rst
.. include:: models/user-management.rst
.. include:: models/console.rst
.. include:: models/metamodel.rst