A moins de vouloir faire une app de dashboard générique (je ne pense
pas que ce soit une bonne idée à ce stade d'apprentissage), AAA est
votre application glue. C'est à dire qu'elle va faire le lien entre
toutes les autres applications.
Dans ce cas précis, cette application peut ne pas être réutilisable et
être fortement couplée aux autres applications (elles découplées).
Ainsi, il est tout à fait acceptable de faire une application "mashup"
avec plein de code en dur utilisant le code des autres applications
dedans. Cela sera très rapide de modifier son code pour la faire
évoluer, et ne gachera pas du tout votre productivité sur le long terme.
Ce que vous voulez faire, fournir une sorte de widget réutilisable
injectable dans un dashboard, est louable et tout à fait possible : il
faudra jouer avec "extends" et "include" en même temps. Mais c'est à
mon sens trop d'un coup. Votre "widget" ne sera jamais réutilisé . Il
est beaucoup plus simple de coder directement dans dashboard.html
chaque widget (et c'est tout à fait propre, puisque AAA n'a pas a être
réutilisable). Même si vous arriviez à créer un widget parfaitement
générique et injectable partout, il y a biens d'autres considérations
(extensibilité, template tag, injection de contexte, gestion de
plusieurs version de HTML, dépendances de CSS, standardisation des
liens) à prendre en compte pour que le widget est vraiment de la valeur
dans un contexte Django pour tous (ou alors ça n'a pas de sens de le
faire générique).
Je comprends que vous vouliez apprendre en le faisant, mais justement
(je suis formateur :-)), je vous recommande de ne pas le faire et
d'apprendre le reste avant. Je code très souvent des applications AAA
pleines de code non réutilisables. L'équilibre en la généricité et la
productivité se trouve petit à petit.
Si vraiment vous souhaitez à tout prix créer ce widget dans un template
de l'app CLIENT, alors il va falloir nous donner plus de détails que
"ça ne marche pas":
- code complet
- ce que ça fait au lieu de ce que vous voudriez que ça fasse (y
compris rendu, données manquantes, message d'erreur, etc).
Le dim. 15 juil. 2012 07:00:45 CEST, thomfort a écrit :
> Bonjour,
>
> Merci pour vos réponses et pour l'éclaircissement de include et extends.
>
> Voici quelques détails par rapport à mes apps et aussi une clarification
> de ma problématique, car je ne vous cacherai pas que vous m'avez un peu
> perdu ;)
>
> Je fais un site de rating d'item et de personne. Mon projet se nomme
> "AAA". (J'utilise django 1.4)
>
> J'ai une apps qui se nomme donc "AAA" dans laquelle je met mon template de
> "base.html" et "dashboard.html".
>
> Ensuite, j'ai une autre Apps qui se nomme "CLIENT". Dans celle-ci, j'ai
> les templates de base pour le CRUD.
>
> Pour le moment, j'ai que 2 apps. (Prochainement, j'aurai d'autre apps qui
> se linkerons)
>
> Ce que je veux faire, c'est d'avoir sur le dashboard("AAA") des
> informations relatives à l'apps "CLIENT", car je risque de réutiliser
> c'est template(partial). Par exemple, j'aimerais afficher les 10 dernières
> personnes qui ont été évaluées. Pour ce faire, je voudrais faire mon
> template dans mon apps "CLIENT" et l'afficher sur le dashboard de l'apps
> "AAA" et je n'y arrive pas pour le moment sans m'énerver ;) Le modèle MVC
> (MVT) peut-être un peu mélangeant dès qu'on sort un peu de sentier
> battu...
>
> Cordialement,
> _______________________________________________
> django mailing list
> [email protected]
> http://lists.afpy.org/mailman/listinfo/django
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django