Extension for the Django admin panel that makes it possible to add actions that do not require a queryset to run.
Works with django-admin-action-forms.
It does one thing and one thing only.
-
Install using
pip
:$ pip3 install django-no-queryset-admin-actions
-
Add
'django_no_queryset_admin_actions'
to yourINSTALLED_APPS
setting.INSTALLED_APPS = [ ... 'django_no_queryset_admin_actions', ]
Let's say you have an action that fetches external orders from an API. You don't need a queryset to run this action, but Django requires it by default. By using this extension, you can bypass that, and create actions that can be run without selecting any objects.
from django.contrib.admin import ModelAdmin, register, action
from django_no_queryset_admin_actions import NoQuerySetAdminActionsMixin
@register(ExternalOrder)
class ExternalOrderAdmin(NoQuerySetAdminActionsMixin, ModelAdmin):
...
@action(description="Fetch external orders")
def fetch_external_orders(self, request): # <- No `queryset` parameter
...
actions = ["fetch_external_orders"]
no_queryset_actions = ["fetch_external_orders"]