Question

Quand je lance shell manage.py sur mon projet Django pour jeter un coup d'oeil à quelque chose, il y a des importations communes que je veux toujours courir au début de la coque (par exemple, je veux toujours importer mes fichiers de modèle.) Comment Je ces exécuter automatiquement chaque fois que je lance la commande shell?

2ème question relative, quand je frappe le je reçois flèche vers le haut le caractère « ^ A » au lieu de la commande exécutée précédemment dans le shell manage.py (et dans ma coquille python régulière), comment puis-je résoudre ce problème il charge la commande précédente comme sur la ligne de commande Linux / Unix?

Était-ce utile?

La solution

Pour la première question, regardez la commande manage.py shell_plus fournie par le django- extensions projet. Il chargera tous vos fichiers de modèle au démarrage du shell. Le projet a un tas d'autres trucs utiles aussi, donc il vaut vraiment la peine de vérifier.

Pour la deuxième question, je ne peux deviner que vous devez installer readline.

Autres conseils

vous pouvez reproduire ce que

python manage.py shell

fait en passant simplement:

from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)

et vous aurez l'environnement tout mis en place pour le reste de ce script. Il y a d'autres façons de le faire ici aussi: http : //www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/

Une seule chose qui peut résoudre à la fois de votre problème est ipython . ipython stocke les exécutions précédentes et il peut vous donner l'achèvement ainsi.

Auto importation des paquets fréquemment utilisés dans python manage.py shell_plus

Exemple:

#  local_settings
SHELL_PLUS_PRE_IMPORTS = (
    ('<app_name>.models', '*'),
    ('<app_name>.forms', '*'),
    ('<app_name>.views', '*'),
    ('django.core.urlresolvers', '*'),
    ('django.db', 'connection'),
    ('django.db', 'reset_queries'),
)

SHELL_PLUS_DONT_LOAD = ['<app_name>', '<app_name>']

Référence: https://github.com/django-extensions/django -extensions / blob / maître / documents / shell_plus.rst

Ajout des choses supplémentaires à la coque django peut être fait en utilisant comme point de départ la commande shell_plus fournie dans la section app django-extesions, et le modifier en ajoutant tout ce que vous voulez mettre à la disposition du dictionnaire « imported_objects ».

Par exemple, si vous dupliquez le fichier shell_plus.py et d'ajouter ces deux lignes à la fin:

# .......
alist = range(1000)
imported_objects['alist'] = alist
code.interact(local=imported_objects)  # <-- this is the original final line

Lorsque vous exécutez le shell en utilisant le nouveau fichier de la référence « alist » sera disponible. Je mets un exemple plus ici: http://www.michelepasin.org/techblog/?p= 1012

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top