2010-09-08 6 views
8

J'essaie de déplacer certaines données de mon ordinateur de développement vers un serveur en utilisant dumpdata mais j'ai rencontré un problème. Donc, disons que je veux vider les données qui appartiennent à l'application django.contrib.auth.
django.contrib.auth est dans mon INSTALLED_APPS.
Cela se produit lorsque je lance
$ python manage.py dumpdata django.contrib.authExécution de manage.py dumpdata sur des applications avec des points dans leurs noms

Error: Unknown application: django.contrib.auth

La chose étrange est que je peux faire manage.py testserver (à savoir rien est cassé) ou ne
$ python
>>> import django.contrib.auth

Donc, il n'y a rien de mal avec le chemin de python.
Je peux exécuter dumpdata sur des applications qui se trouvent directement dans le répertoire de mon projet.
Si j'omets les noms des applications, les tables de django.contrib.auth sont sauvegardées comme prévu. Alors, pourquoi ne puis-je pas indiquer une application spécifique avec des points dans le nom? J'ai essayé de vider d'autres applications qui sont situées dans site-packages avec le même résultat.

Répondre

22

Essayez plutôt:

python manage.py dumpdata auth 

La commande dumpdata ne nécessite pas le nom du package (complet) de l'application, seul le nom.

+4

Il s'agit d'un comportement non intuitif, car je m'attendais à ce que Django utilise le nom de package complet, mais autorise le nom court s'il n'y avait pas de conflits. Merci de l'avoir signalé. – Cerin

+0

A ce jour, les applications django doivent avoir des noms uniques, donc il y aura des conflits possibles. –

+0

Pouce. Cela ne fonctionne pas pour moi. J'ai une application 'orders', ainsi qu'une application 'dashboard.orders'. Simpy en utilisant 'commandes' ne produit que des données de l'application. :( –