Domanda

Quando eseguo shell manage.py sul mio progetto Django a dare uno sguardo a cosa ci sono le importazioni comuni che ho sempre voglia di correre alla partenza del guscio (per esempio, ho sempre voglia di importare i miei file di modello.) Come può ho questi eseguito automaticamente ogni volta che si esegue il comando di shell?

Relativo alla seconda domanda, quando ho colpito la freccia su ottengo il carattere "^ A" al posto del comando eseguito in precedenza nel guscio manage.py (e nel mio guscio pitone regolare), come posso risolvere questo problema in modo carica il comando precedente, come nella linea di comando di Linux / Unix?

È stato utile?

Soluzione

Per la prima domanda, guarda il comando manage.py shell_plus fornito dal django- estensioni progetto. Si caricherà tutti i file modello all'avvio della shell. Il progetto ha ottenuto un intero carico di altri trucchi utili anche, quindi è sicuramente la pena di verificare.

Per la seconda domanda, posso solo immaginare che è necessario installare readline.

Altri suggerimenti

è possibile replicare ciò che

python manage.py shell

fa da solo facendo:

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

e si avrà l'ambiente tutti insieme per il resto di quello script. Ci sono alcuni altri modi per farlo anche qui: http : //www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/

Una cosa sola che può risolvere entrambi il vostro problema è ipython . ipython memorizza le esecuzioni precedenti e può dare il completamento pure.

Sistema importazione di pacchetti di uso frequente in python manage.py shell_plus

Esempio:

#  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>']

Riferimento:
https://github.com/django-extensions/django -extensions / blob / master / docs / shell_plus.rst

Aggiunta materiale extra al guscio Django può essere fatto utilizzando come punto di partenza il comando shell_plus fornito nel django-extesions app, e modificandola con l'aggiunta di quello che vuoi mettere a disposizione del dizionario 'imported_objects'.

Ad esempio, se si duplica il file shell_plus.py e aggiungere queste due righe alla fine:

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

Quando si esegue la shell utilizzando il nuovo file il seguente riferimento 'alist' sarà disponibile. Ho messo un esempio più qui: http://www.michelepasin.org/techblog/?p= 1012

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top