A collection of classes and commands for automated command line scripting using Python.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2.5 KiB

Django

Summary: Work with Django management commands.

Common Options for Django Commands

You will want to include cd to change to the project directory (where manage.py lives) and supply venv to load the virtual environment.

[collect static files]
django.static:
cd: /path/to/project/source
venv: ../python

Automatic Conversion of Django Command Switches

Options provided in the steps file are automatically converted to command line switches.

[run database migrations]
django.migrate:
settings: tenants.example_com.settings

[dump some data]
django.dump: projects.Category
indent: 4
natural_foreign: yes
natural_primary: yes

settings becomes "--settings=tenants.example_com.settings". indent becomes "--indent=4". natural_foreign and natural_primary become "--natural-foreign" and "--natural-primary" respectively.

Available Commands

check

[run django checks]
django.check:
stop: yes

collectstatic

Alias: static

Collect static files.

[collect static files]
django.static:

createsuperuser

Create a superuser account.

[create the root user account]
django.createsuperuser: root
email: root@example.com

dumpdata

Alias: dump

Dump fixture data.

  • target (str): Required. The name of the app or app.Model.
  • format (str): json (default) or xml.
  • path (str): The path to the output file. When a model is provided, this defaults to fixtures/app/model.json. Otherwise, it is fixtures/app/initial.json.
[dump project data]
django.dump: projects

[dump project categories]
django.dump: projects.Category
path: local/projects/fixtures/default-categories.json

loaddata

Alias: load

Load fixture data.

  • target (str): Required. The name of the app or app.Model.
  • format (str): json (default) or xml
  • path (str): The path to the JSON file. When a model is provided, this defaults to fixtures/app/model.json. Otherwise, it is fixtures/app/initial.json.
[load project categories]
django.load: projects
path: local/projects/fixtures/default-categories.json

migrate

Run database migrations.

[run database migrations]
django.migrate:
stop: yes

Custom or Ad Hoc Commands

It is possible to work with any Django management command provided the parameters may be specified as a switch.

[run any django command]
django: command_name
option_one: asdf
option_two: 1234
option_three: yes

This will generate a statement like:

./manage.py command_name --option-one="asdf" --option-two=1234 --option-three