跳转到主要内容

正确处理可排序的更改列表和内联内容^W简单

项目描述

CI Status

请参考上面链接的CI构建,以获取目前支持的Python和Django组合。

安装

pip install django-admin-ordering,并将admin_ordering添加到INSTALLED_APPS

使用

首先,您需要一个按整数字段排序的模型。如果您对以下模型满意:1. 排序字段称为ordering;2. 排序字段自动初始化,使新对象排在最后,您也可以继承抽象模型admin_ordering.models.OrderableModel。如果您定义自己的class Meta,则应该继承OrderableModel.Meta,以便将ordering属性设置为正确的值。

from admin_ordering.models import OrderableModel

class MyModel(OrderableModel):
    # ...

    class Meta(OrderableModel.Meta):
        # ...

可排序更改列表

from admin_ordering.admin import OrderableAdmin

@admin.register(MyModel)
class MyModelAdmin(OrderableAdmin, admin.ModelAdmin):
    # The field used for ordering. Prepend a minus for reverse
    # ordering: "-ordering"
    ordering_field = "ordering"  # The default.

    # You may optionally hide the ordering field in the changelist:
    # ordering_field_hide_input = False

    # The ordering field must be included both in list_display and
    # list_editable:
    list_display = ["name", "ordering"]
    list_editable = ["ordering"]

可排序内联

from admin_ordering.admin import OrderableAdmin

class MyModelTabularInline(OrderableAdmin, admin.TabularInline):
    model = MyModel

    # Same as above; "-ordering" is also allowed here:
    ordering_field = "ordering"
    # ordering_field_hide_input = False

OrderableAdmin默认为extra = 0(默认不显示额外的空内联)。强烈建议保持默认设置不变,否则您可能会因为想要更改排序而得到无效的内联。

限制

  • OrderableAdmin可用于内联和父模型,但这也意味着您不能直接将模型与OrderableAdmin注册。

  • 使用带有过滤或分页列表的django-admin-ordering可能会产生意外结果。目前的建议是将list_per_page设置为一个更大的值,并且不要重新排序过滤后的更改列表。

  • 请注意,django-admin-ordering以10的倍数递增分配排序值,强调排序值除了赋予元素相对排序外不应具有任何其他意义。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

django_admin_ordering-0.18.2.tar.gz (17.8 kB 查看哈希值)

上传时间

构建分布

django_admin_ordering-0.18.2-py3-none-any.whl (20.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面