GUIs are great - no question about that - but in some cases nothing serves the user better than having a simple, highly customized, query or scripting language at his disposal.
In this talk, we will demonstrate how to build such a feature into a Django project using David Beazley's great ply package. As an example, we will implement a small but perfectly usable compiler taking expressions in a simple query language as input and yielding (django.db.models.)Q objects as a result.