2009-03-30 6 views

Répondre

12

Il n'y a pas générique meilleure façon. Mais il y a une bonne façon pour votre situation.

  • mettre les vues dans leurs propres fichiers et les importer dans votre vue. Ce qui est bon juste pour voir comment cela fonctionne
  • faire une application séparée à l'intérieur du projet pour maintenir un ensemble de vues
  • créer votre propre generic views qui partagent les vues communes à la plupart de vos applications

Tout comme un exemple de départ: je vous recommande de commencer par le modèle et vous-même travailler jusqu'à:

  • comment beaucoup de modèles avez-vous?
  • Sont-ils tous ou peuvent-ils être groupés?
  • si l'on peut groupés diviser les app en deux applications
  • de sorte que vous aurez également diviser les vues
  • déterminent quelles fonctions sont similaires voir et de les rendre générique.
2

Je diviser les vues ayant un objectif ou une fonctionnalité similaire en un seul fichier et les inclure dans views.py. Je ne fais cela que pour la lisibilité et la maintenance. Par exemple, des vues CRUD pour un objet particulier ou un groupe d'objets. En important ces vues directement dans le fichier views.py principal, cela permet à des personnes qui ne sont pas familières avec votre convention de trouver où se trouve le fichier.

views/object_view.py 
26

Certains développeurs font leurs vues un python package au lieu d'un module. Cela signifie simplement créer un répertoire appelé views dans votre application puis placer chaque vue dans son propre module (fichier) dans ce paquet.

Ensuite, vous créez un fichier __init__.py (ce qui en fait un package). Ce fichier peut être vide ou il peut être importé tous les modules de vue dans son propre espace de noms.

S'il est vide, vous devrez importer directement chaque vue dont vous avez besoin, sinon vous pouvez l'importer comme s'il s'agissait d'un module views.py.

+0

C'est ce que je fais pour mes objets de modèle parce que je travaille avec un grand domaine hérité. – ThatAintWorking

1

Dans un monde idéal, vous ne devriez pas avoir à faire cela. Au lieu de cela, essayez de refactoriser votre code dans différentes applications django pour chaque sous-objet dont votre projet a besoin. De cette façon, vous pouvez partitionner votre projet encore mieux que vous ne le pourriez si vous ne divisiez que le fichier views.py.

Pour obtenir des conseils sur la façon de diviser votre projet en différentes applications, je recommande la lecture pratique de James Bennett Django Projets, ce qui est ce que je relis en ce moment :)

Questions connexes