OrderedView

The OrderedUpView and OrderedDownView integrate django-ordered-model with the crud-views framework. They provide up/down reordering actions for model instances that extend OrderedModel.

Installation

Install the ordered optional dependency group:

pip install django-crud-views[ordered]

Model

Your model must extend OrderedModel:

from ordered_model.models import OrderedModel

class Author(OrderedModel):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

    class Meta(OrderedModel.Meta):
        pass

Add ordered_model to INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    "ordered_model",
]

Views

from crud_views.lib.views import (
    OrderedUpViewPermissionRequired,
    OrderedUpDownPermissionRequired,
)

class AuthorUpView(OrderedUpViewPermissionRequired):
    cv_viewset = cv_author


class AuthorDownView(OrderedUpDownPermissionRequired):
    cv_viewset = cv_author

List View Integration

Add "up" and "down" to cv_list_actions to show the reordering buttons per row:

class AuthorListView(ListViewTableMixin, ListViewPermissionRequired):
    table_class = AuthorTable
    cv_viewset = cv_author
    cv_list_actions = ["detail", "update", "delete", "up", "down"]

View Classes

Class Description
OrderedUpView Moves the instance up in order (no permission check)
OrderedUpViewPermissionRequired Same, requires change permission
OrderedDownView Moves the instance down in order (no permission check)
OrderedUpDownPermissionRequired Same, requires change permission