11👍
For the first question, look at the manage.py shell_plus
command provided by the django-extensions project. It will load all your model files on shell startup. The project has got a whole load of other useful tricks too, so it’s definitely worth checking out.
For the second question, I can only guess that you need to install readline
.
4👍
you can replicate what
python manage.py shell
does by just doing:
from django.core.management import setup_environ
from mysite import settings
setup_environ(settings)
and you will have the environment all set up for the rest of that script. There are some other ways to do this here too: http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/
- Ntlm/Kerberos authentication in Django
- Deploying django by python manage.py runserver to production on VPS
- How does a python web server overcomes GIL
2👍
One single thing which can solve both of your problem is ipython. ipython stores the previous executions and it can give you completion as well.
- Duplicate elements in Django Paginate after `order_by` call
- Emptying the database through Django's `manage.py`
- ('Unexpected credentials type', None, 'Expected', 'service_account') with oauth2client (Python)
2👍
Auto importing frequently used packages in python manage.py shell_plus
Example:
# 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>']
Reference:
https://github.com/django-extensions/django-extensions/blob/master/docs/shell_plus.rst
- "Error: That IP address can't be assigned-to" when running app
- Django – create a model that lets you insert multiple values for the same field?
- How to add some extra fields to the page in django-cms? (in django admin panel)
0👍
Adding extra stuff to the django shell can be done using as a starting point the shell_plus command provided in the django-extesions app, and modifying it by adding whatever you want to make available to the ‘imported_objects’ dictionary.
Eg if you duplicate the shell_plus.py file and add these two lines at the end:
# .......
alist = range(1000)
imported_objects['alist'] = alist
code.interact(local=imported_objects) # <-- this is the original final line
When you run the shell using the new file the ‘alist’ reference will be available.
I put a longer example here: http://www.michelepasin.org/techblog/?p=1012