listview
#1
listview semble n'être plus utilisé dans la version 2 si je regarde certains modules. Est ce que je trompe ?


Citation :        # Swappable(url(r'^invoices[/]?$',  invoice.listview, name='billing__list_invoices')),
        Swappable(re_path(r'^invoices[/]?$', invoice.InvoicesList.as_view(), name='billing__list_invoices')),

Si non pourquoi ?
swappable sert à quoi ?
  Répondre
#2
Citation :listview semble n'être plus utilisé dans la version 2 si je regarde certains modules. Est ce que je trompe ?

En Creme 2.0 nous avons commencé à migrer les vues génériques pour passer de fonctions à des classes ("Class-Based Views" dans la nomenclature Django), ce qui amène pas mal d'avantages (plus facile de réutiliser/étendre le code, plus facile de modifier le comportement depuis l'extérieur...). En 2.1 ce travail a été fait pour les vues de liste, et toutes les apps ont été modifiées en ce sens.


Citation :swappable sert à quoi ?


Django permet de rendre un modèle swappable, c'est à dire de permettre de remplacer ce modèle par un autre. C'est par exemple le cas du modèle User fourni par Django ; Creme fournit son propre modèle, CremeUser. De la même manière, les modèles d'entités de Creme sont swappable, afin que le code client puisse utiliser ses propres modèles (même si c'est une méthode qu'il vaut mieux utiliser en dernier recours car demande pas mal de maintenance à la longue). C'est pour ça qu'un modèle d'entité comme Contact hérite d'un modèle abstrait AbstractContact (qui facilite la définition de nouveau modèle de Contact sans avoir à tout copier coller), et qu'on accède au modèle via la fonction creme.persons.get_contact_model() (et non pas en référençant Contact directement).

Lorsque que le modèle relatif à une URL est swappé, Swappable ne déclare pas l'URL qu'on lui donne, et soulève une erreur si vous définissez pas ladite URL (pour vous obliger à explicitement faire le travail lié à votre nouveau modèle -- l'idée étant que vous pouvez en grande partie réutiliser vues, formulaires etc...).

Au final, vous n'aurez pas à vous servir de Swappable dans votre code personnel, seul les apps fournies de base avec Creme ont à s'en soucier.
  Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)