RSS michelepasin.org / code, music, words

Words / blog / 27 May 2009

Snippet to load stuff quickly in the Django shell


Sometimes you end up testing out things a lot using the handy django shell, but every time you've got to repeat the same commands to load all the necessary models, utils etc. etc.

Picture 1

In order to do this automatically, I thought you had to modify the django-admin.py file or something like that. Nope! Here's a useful django snippet that shows how to do the job. Basically - it's very simple (I actually don't understand how I got stuck on something so obvious!), just put everything you want to load  in a separate file in your project, and then load that file from the shell ;-)

E.g..

''' Allows for a quick startup loading commonly used classes, installed apps, and console utils. To use: After manage.py shell, enter from project.package.modulename import * '''

from django.conf import settings from django.db import connection, models

# Load each installed app and put models into the global namespace. for app in models.get_apps(): exec("from %s import *" % app.__name__)

def last_query(): "Show the last query performed." return connection.queries[-1]

===================================================

# Add commonly used modules, classes, functions here

===================================================

from django import forms import os from datetime import datetime

# etc. etc.

p.s. also snippets 540 and 549 provide alternative solutions to the problem!

Michele Pasin. Snippet to load stuff quickly in the Django shell. Blog post on www.michelepasin.org. Published on May 27, 2009.

2021

2019

2016

2014

2012

2011

2010

2009