skip to navigation
skip to content

django-cli-query 1.3

Django management command for commandline querying

Copyright (c) 2009-2014 Dennis Kaarsemaker <dennis@kaarsemaker.net> A command-line interface to query the Django ORM

Install:
  • python setup.py install
  • Add cli_query to the INSTALLED_APPLICATIONS setting in your settings.py

Usage: cd your_project_dir; ./manage.py query [options] [filters]

The django ORM will be queried with the filters on the commandline. Records will be separated with newlines, fields with the specified separator (the default is a comma). Alternatively, a template can be specified which will be passed the result of the query as the ‘objects’ variable

Query key/value pairs can be prefixed with a ‘!’ or ‘~’ to negate the query. The __in filter works, use a comma separated string of arguments

You can also update fields using -u field=value. For every changed object, you will be prompted to approve the changes.

Examples:
  • Display name and assettag of all mc01 servers %prog query -a servers -m Server name__startswith=mc01 -f name,assettag
  • Get a list of name, ip, mac for all servers where the does not contain .82. %prog query -a servers -m Interface !ip_address__contains=’.82.’ -f server.name,ip_address,mac_address
  • Use a template to get the roles, depending on mac address %prog query -a servers -m Server interface__mac_address=00:17:A4:8D:E6:BC -t ‘{{ objects.0.role_set.all|join:”,” }}’
  • List all eth0/eth1 network interfaces %prog query -a servers -m Interface name__in=eth0,eth1 -f ip_address,mac_address
  • Update the state of all mc2* servers $prog query -a servers -m Server name__startswith=mc2 -u status=live

Operators you can filter with are listed on https://docs.djangoproject.com/en/dev/ref/models/querysets/#field-lookups

 
File Type Py Version Uploaded on Size
django-cli-query-1.3.tar.gz (md5) Source 2014-01-30 4KB