gwift-book/source/models.rst

51 lines
1.3 KiB
ReStructuredText
Raw Normal View History

2015-11-06 12:13:23 +01:00
============
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.
2015-10-14 18:42:37 +02:00
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.
2015-11-06 14:59:27 +01:00
Cela nous donne ceci:
2015-10-21 21:56:02 +02:00
2015-11-06 12:13:23 +01:00
.. code-block:: python
# wish/models.py
2015-10-21 21:56:32 +02:00
2015-11-06 12:13:23 +01:00
from django.db import models
2015-10-21 21:56:02 +02:00
2015-11-06 12:13:23 +01:00
class Wishlist(models.Model):
pass
2015-10-21 21:56:02 +02:00
2015-11-06 12:13:23 +01:00
class Item(models.Model):
pass
2015-10-21 21:56:02 +02:00
2015-11-06 12:13:23 +01:00
class Part(models.Model):
pass
2015-10-14 18:42:37 +02:00
2015-10-21 21:56:32 +02:00
Les classes sont créées, mais vides. Entrons dans les détails.
2015-11-06 14:59:27 +01:00
[Ajouter pourquoi on hérite de ``models.Model``, etc.)
2015-10-28 13:56:18 +01:00
2015-12-23 23:03:21 +01:00
.. include:: models/models.rst
2015-10-14 18:42:37 +02:00
2015-12-23 23:03:21 +01:00
.. include:: models/key-points.rst
2015-10-14 18:42:37 +02:00
2015-12-23 23:03:21 +01:00
.. include:: models/refactoring.rst
2015-10-14 18:42:37 +02:00
2015-12-23 23:03:21 +01:00
.. include:: models/user-management.rst
2015-10-21 21:56:32 +02:00
2015-12-23 23:03:21 +01:00
.. include:: models/console.rst
2015-10-21 21:56:32 +02:00
2016-04-13 16:08:38 +02:00
.. include:: models/metamodel.rst