2010-07-29 4 views
0

Pensez à ceci:Comment créer une table et son model.py liée automatiquement à partir d'un fichier csv dans Django

Vous créez un CMS de quelque sorte, qui vous demande un nom d'application et un csv fichier pour cette application. Ensuite, il crée automatiquement cette application à la volée, crée le model.py requis basé sur les colonnes csv, active la page d'administration pour elle et vous permet seulement d'avoir l'autorisation complète de cette nouvelle table via admin django, alors il insère l'application dans l'url.py et crée la vue.py pour celle-ci.

Ensuite, tout ce que vous avez à faire est de télécharger un csv, nommez votre application et whola !, vous avez une page d'administration pour jouer avec.

Maintenant, est-il possible de créer une application ou au moins un model.py à partir d'un fichier csv dans django ou y at-il une application django qui peut le faire?

Note: Regardez au-delà (./manage.py inspectdb> models.py)

+0

Comptez-vous spécifier les types de chacune des colonnes dans le fichier csv? Modifier model.py me semble déjà très facile, mais c'est une idée intéressante ... – Faisal

+0

Oui, une fois que le csv a été chargé, chaque colonne sera automatiquement détectée (dans le meilleur des cas) et un menu déroulant aura montrer où vous pouvez définir chaque champ au type que vous voulez avant d'appuyer sur "go". Seulement alors, il va créer model.py, syncdb, url et afficher et définir les modifications. – un33k

+0

Je suppose que le but est de faciliter la création d'applications. Vous pouvez écrire un outil qui génère du code dans un format spécifique. Cependant, il est probable que vous passerez plus de temps sur votre outil de génération de code. Essayez-le et voyez comment ça se passe. Si le code de django vous dérange, vous pouvez essayer un framework plus léger. – monkut

Répondre

0

Bien que cela ne concerne pas la création d'un models.py et l'application réelle, vous pouvez regarder dans dynamically creating Model classes at runtime. Vous pouvez avoir des modèles "meta" qui stockent les informations sur les modèles dynamiques, puis demander à votre vue CSV d'importer les données dans ces modèles, de créer les classes et de les enregistrer auprès de l'administrateur. Ou quelque chose comme ça.

La création d'un répertoire d'application réel, avec models.py, views.py, etc., est assez simple (il suffit de créer le répertoire, de créer les fichiers et d'y écrire des chaînes formatées en fonction des données CSV). La modification des paramètres settings.py et urls.py du projet et le rechargement des modules ne seraient pas trop difficiles non plus. Mais, je ne ferais pas confiance aux applications Django générées automatiquement sans d'abord les regarder.