---
url: "https://vueda.dev/v3/reference/api/py/vueda.workflow.viewsets/WorkflowViewSet.md"
title: "WorkflowViewSet"
---

# WorkflowViewSet

## Overview

List a queryset.

## `check_object_permissions` {#check_object_permissions}

Check all object permissions, hiding unreadable objects in bulk transition requests.

### Signature {#check_object_permissions-signature}

`check_object_permissions(self, request, obj)`

#### Parameters {#check_object_permissions-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="check_object_permissions-param-request">request</span> |  | yes |  |  |
| <span id="check_object_permissions-param-obj">obj</span> |  | yes |  |  |

### Source {#check_object_permissions-source}

`server/vueda/workflow/viewsets.py:109`

## `check_permissions` {#check_permissions}

Check if the request should be permitted.
Raises an appropriate exception if the request is not permitted.

### Signature {#check_permissions-signature}

`check_permissions(self, request)`

#### Parameters {#check_permissions-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="check_permissions-param-request">request</span> |  | yes |  |  |

### Source {#check_permissions-source}

`server/vueda/workflow/viewsets.py:123`

## `dispatch` {#dispatch}

Dispatch the incoming request to the appropriate handler method.

This method implements the core request/response lifecycle for
Django REST Framework views:

1. Wraps the incoming Django HttpRequest in a REST framework Request.
2. Performs content negotiation, authentication, permission, and
    throttling checks.
3. Resolves and calls the appropriate HTTP method handler
    (e.g. get(), post(), put()).
4. Handles any exceptions raised during processing and converts
    them into appropriate Response objects.
5. Finalizes and returns the response with proper rendering
    and headers applied.

### Signature {#dispatch-signature}

`dispatch(self, request, args, kwargs)`

#### Parameters {#dispatch-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="dispatch-param-request">request</span> |  | yes |  |  |
| <span id="dispatch-param-args">args</span> |  | no |  |  |
| <span id="dispatch-param-kwargs">kwargs</span> |  | no |  |  |

### Source {#dispatch-source}

`server/vueda/workflow/viewsets.py:119`

## `execute_transition` {#execute_transition}

### Signature {#execute_transition-signature}

`execute_transition(self, request, app_label, model, object_id)`

#### Parameters {#execute_transition-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="execute_transition-param-request">request</span> |  | yes |  |  |
| <span id="execute_transition-param-app_label">app_label</span> |  | yes |  |  |
| <span id="execute_transition-param-model">model</span> |  | yes |  |  |
| <span id="execute_transition-param-object_id">object_id</span> |  | no | `None` |  |

### Source {#execute_transition-source}

`server/vueda/workflow/viewsets.py:242`

## `get_object` {#get_object}

Return the target object, checking its permissions, or the workflow the request names.

### Signature {#get_object-signature}

`get_object(self)`

#### Parameters {#get_object-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |

### Source {#get_object-source}

`server/vueda/workflow/viewsets.py:96`

## `get_queryset` {#get_queryset}

Get the list of items for this view.
This must be an iterable, and may be a queryset.
Defaults to using `self.queryset`.

This method should always be used rather than accessing `self.queryset`
directly, as `self.queryset` gets evaluated only once, and those results
are cached for all subsequent requests.

You may want to override this if you need to provide different
querysets depending on the incoming request.

(Eg. return a list of items that is specific to the user)

### Signature {#get_queryset-signature}

`get_queryset(self)`

#### Parameters {#get_queryset-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |

### Source {#get_queryset-source}

`server/vueda/workflow/viewsets.py:73`

## `get_workflow` {#get_workflow}

Return the workflow of the model the request names.

A model that does not enable ``class Vueda.Workflow`` has no workflow here, whatever rows
exist, and raises ``Http404``. An enabled model without a definition raises
``WorkflowNotConfiguredError``.

### Signature {#get_workflow-signature}

`get_workflow(self)`

#### Parameters {#get_workflow-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |

### Source {#get_workflow-source}

`server/vueda/workflow/viewsets.py:79`

## `list` {#list}

### Signature {#list-signature}

`list(self, request, args, kwargs)`

#### Parameters {#list-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="list-param-request">request</span> |  | yes |  |  |
| <span id="list-param-args">args</span> |  | no |  |  |
| <span id="list-param-kwargs">kwargs</span> |  | no |  |  |

### Source {#list-source}

`.venv/lib/python3.12/site-packages/rest_framework/mixins.py:37`

## `object_state` {#object_state}

### Signature {#object_state-signature}

`object_state(self, request, app_label, model, object_id)`

#### Parameters {#object_state-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="object_state-param-request">request</span> |  | yes |  |  |
| <span id="object_state-param-app_label">app_label</span> |  | yes |  |  |
| <span id="object_state-param-model">model</span> |  | yes |  |  |
| <span id="object_state-param-object_id">object_id</span> |  | yes |  |  |

### Source {#object_state-source}

`server/vueda/workflow/viewsets.py:135`

## `object_transitions` {#object_transitions}

### Signature {#object_transitions-signature}

`object_transitions(self, request, app_label, model, object_id)`

#### Parameters {#object_transitions-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="object_transitions-param-request">request</span> |  | yes |  |  |
| <span id="object_transitions-param-app_label">app_label</span> |  | yes |  |  |
| <span id="object_transitions-param-model">model</span> |  | yes |  |  |
| <span id="object_transitions-param-object_id">object_id</span> |  | yes |  |  |

### Source {#object_transitions-source}

`server/vueda/workflow/viewsets.py:219`

## `permitted_transitions` {#permitted_transitions}

### Signature {#permitted_transitions-signature}

`permitted_transitions(self, request, app_label, model)`

#### Parameters {#permitted_transitions-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="permitted_transitions-param-request">request</span> |  | yes |  |  |
| <span id="permitted_transitions-param-app_label">app_label</span> |  | yes |  |  |
| <span id="permitted_transitions-param-model">model</span> |  | yes |  |  |

### Source {#permitted_transitions-source}

`server/vueda/workflow/viewsets.py:168`

## `resolves_object` {#resolves_object}

Whether this action decides authorization against each concrete object it touches.

### Signature {#resolves_object-signature}

`resolves_object(self)`

#### Parameters {#resolves_object-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |

#### Returns {#resolves_object-returns}

`bool`

### Source {#resolves_object-source}

`server/vueda/workflow/viewsets.py:105`

## `retrieve` {#retrieve}

### Signature {#retrieve-signature}

`retrieve(self, request, args, kwargs)`

#### Parameters {#retrieve-parameters}

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| self |  | yes |  |  |
| <span id="retrieve-param-request">request</span> |  | yes |  |  |
| <span id="retrieve-param-args">args</span> |  | no |  |  |
| <span id="retrieve-param-kwargs">kwargs</span> |  | no |  |  |

### Source {#retrieve-source}

`.venv/lib/python3.12/site-packages/rest_framework/mixins.py:53`

## `basename` {#basename}

## `description` {#description}

## `detail` {#detail}

## `filterset_class` {#filterset_class}

## `name` {#name}

## `object_permission_actions` {#object_permission_actions}

## `permission_classes` {#permission_classes}

## `permit_list_expands` {#permit_list_expands}

## `serializer_class` {#serializer_class}

## `suffix` {#suffix}

## `target_model_permission_actions` {#target_model_permission_actions}

## `workflow_gate_exempt_actions` {#workflow_gate_exempt_actions}

## Source

`server/vueda/workflow/viewsets.py:38`
