community.general.django_manage module – Manages a Django application
Note
This module is part of the community.general collection (version 10.7.5).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.general.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.django_manage.
Synopsis
- Manages a Django application using the - manage.pyapplication frontend to- django-admin. With the- virtualenvparameter, all management commands are executed by the given- virtualenvinstallation.
Requirements
The below requirements are needed on the host that executes this module.
- django >= 4.1 
Parameters
| Parameter | Comments | 
|---|---|
| This option no longer has any effect since community.general 9.0.0. It will be removed from community.general 11.0.0. Choices: 
 | |
| A list of space-delimited apps to target. Used by the  | |
| The name of the table used for database-backed caching. Used by the  | |
| Clear the existing files before trying to copy or link the original file. Used only with the  Choices: 
 | |
| The name of the Django management command to run. The commands listed below are built in this module and have some basic parameter validation. 
 
 
 
 
 
 Custom commands can be entered, but they fail unless they are known to Django. Custom commands that may prompt for user input should be run with the  Support for the values  | |
| The database to target. Used by the  | |
| Fail the command immediately if a test fails. Used by the  Choices: 
 | |
| A space-delimited list of fixture file names to load in the database. Required by the  | |
| Creates links to the files instead of copying them, you can only use this parameter with  Choices: 
 | |
| Runs out-of-order or missing migrations as they are not rollback migrations, you can only use this parameter with  Choices: 
 | |
| The path to the root of the Django application where  | |
| A directory to add to the Python path. Typically used to include the settings module if it is located external to the application directory. This would be equivalent to adding  | |
| The Python path to the application’s settings module, such as  | |
| Skips over out-of-order missing migrations, you can only use this parameter with  Choices: 
 | |
| Controls the test runner class that is used to execute tests. This parameter is passed as-is to  | |
| An optional path to a  The virtual environment must exist, otherwise the module fails. | 
Attributes
| Attribute | Support | Description | 
|---|---|---|
| Support: none | Can run in  | |
| Support: none | Will return details on what has changed (or possibly needs changing in  | 
Notes
Note
- ATTENTION: Support for Django releases older than 4.1 has been removed in community.general version 9.0.0. While the module allows for free-form commands, not verifying the version of Django being used, it is strongly recommended to use a more recent version of the framework. 
- Please notice that Django 4.1 requires Python 3.8 or greater. 
- This module does not create a virtualenv if the - virtualenvparameter is specified and a virtual environment does not already exist at the given location. This behavior changed in community.general version 9.0.0.
- The recommended way to create a virtual environment in Ansible is by using ansible.builtin.pip. 
- This module assumes English error messages for the - createcachetablecommand to detect table existence, unfortunately.
- To be able to use the - collectstaticcommand, you must have enabled- staticfilesin your settings.
- Your - manage.pyapplication must be executable (- rwxr-xr-x), and must have a valid shebang, for example- #!/usr/bin/env python, for invoking the appropriate Python interpreter.
See Also
See also
- django-admin and manage.py Reference
- Reference for - django-adminor- manage.pycommands.
- Django Download page
- The page showing how to get Django and the timeline of supported releases. 
- What Python version can I use with Django?
- From the Django FAQ, the response to Python requirements for the framework. 
Examples
- name: Run cleanup on the application installed in django_dir
  community.general.django_manage:
    command: clearsessions
    project_path: "{{ django_dir }}"
- name: Load the initial_data fixture into the application
  community.general.django_manage:
    command: loaddata
    project_path: "{{ django_dir }}"
    fixtures: "{{ initial_data }}"
- name: Run syncdb on the application
  community.general.django_manage:
    command: migrate
    project_path: "{{ django_dir }}"
    settings: "{{ settings_app_name }}"
    pythonpath: "{{ settings_dir }}"
    virtualenv: "{{ virtualenv_dir }}"
- name: Run the SmokeTest test case from the main app. Useful for testing deploys
  community.general.django_manage:
    command: test
    project_path: "{{ django_dir }}"
    apps: main.SmokeTest
- name: Create an initial superuser
  community.general.django_manage:
    command: "createsuperuser --noinput --username=admin [email protected]"
    project_path: "{{ django_dir }}"
