2009-08-27 3 views
11

Je viens d'apprendre que la division de classes de modèles en différents fichiers brise de nombreuses fonctionnalités intégrées de django.Pourquoi django applique-t-il toutes les classes du modèle dans models.py?

Je viens d'un arrière-plan java. Là, il n'est pas accepté comme une bonne pratique d'écrire des fichiers très longs. Mais l'application par django du fichier unique pour toutes les classes du modèle amènera probablement le programmeur à écrire des fichiers models.py très longs. Cela rendra difficile pour le programmeur de voir l'organisation de l'ensemble du modèle de domaine.

Alors pourquoi django impose-t-il un seul fichier pour contenir toutes les classes de domaine? J'ai trouvé a solution proposal à ce problème par googling. Mais je ne peux pas être sûr que cela fonctionnera correctement. Suggérez-vous cette solution?

+0

Votre lien est mort. Pourriez-vous s'il vous plaît le mettre à jour? – Gabriel

+0

Copie possible de [models.py devient énorme, quelle est la meilleure façon de le casser?] (Http://stackoverflow.com/questions/1160579/models-py-getting-huge-what-is-the-best -way-to-break-it-up) – Ajoy

Répondre

7

Espace de noms unique: oui. Module unique: non.

Vos modèles doivent pouvoir être importés à partir de l'espace de noms appname.models.

+0

Je pense que cette réponse est probablement la bonne réponse à cette question, mais elle pourrait certainement être clarifiée. Je pense qu'il se résume essentiellement à 'appname.models' doit importer tous les modèles d'autres modules. Une explication du pourquoi ou du lieu où ce comportement est documenté serait utile. – SpoonMeiser

+0

De même, pourquoi avoir 'appname.models' juste importer les modules qui définissent d'autres modèles ne suffit pas? Sûrement cela déclencherait la magie métaclasse nécessaire? Si non, pourquoi? – SpoonMeiser