允许对django模型进行排序,并提供一个简单的管理界面来重新排序它们。

django-ordered-model-grappelli的Python项目详细描述


[![生成状态](https://secure.travis-ci.org/gbezyuk/django-ordered-model-grappelli.png?branch=master)](https://travis-ci.org/gbezyuk/django-ordered-model-grappelli

这是bfirsh的原始django有序模型的叉。下面的文字保持不变。

django有序模型允许对模型进行排序,并提供一个简单的管理 用于重新排序它们的接口。

基于https://djangosnippets.org/snippets/998/https://djangosnippets.org/snippets/259/

需要:

  • Django >=1.5

安装

$ python setup.py install

用法

Ordered_Model添加到您的设置中。已安装的_应用程序

ordered model继承模型以使其有序:

from django.db import models from ordered_model.models import OrderedModel

class Item(OrderedModel):

name = models.CharField(max_length=100)

class Meta(OrderedModel.Meta):
pass

模型实例现在有一组方法来相对移动它们。 为了演示这些方法,我们创建了两个项的实例

foo = Item.objects.create(name=”Foo”) bar = Item.objects.create(name=”Bar”)

###互换头寸

foo.swap(bar)

这将交换两个对象的位置。

###在位置上向上移动位置

foo.up() foo.down()

向上或向下移动一个物体只会使它与呼啸声交换位置 物体的正上方或正下方取决于方向。

###移动到任意位置

foo.to(12) bar.to(13)

将对象移动到堆栈中的任意位置。这基本上设置了 将值排序为指定的整数。对象介于原始对象和新对象之间 位置按方向增减顺序值 移动。

###将对象移动到参考上方或下方

foo.above(bar) foo.below(bar)

将对象直接移动到引用对象的上方或下方,增加或 减小两者之间所有对象的顺序值,具体取决于 移动方向。

###移到堆栈顶部

foo.top()

这会将order值设置为堆栈中的最低值并增加 高于移动对象一的所有对象的顺序值。

###移到堆栈底部

foo.bottom()

这会将order值设置为堆栈中的最高值并减少 低于移动对象1的所有对象的顺序值。

##子集排序

在某些情况下,仅在对象的子集上需要对对象排序。例如, 在多对一/多关系中为用户管理联系人列表的应用程序, 希望允许每个用户订购其联系人,而不管其他用户如何订购 选择他们的顺序。通过order_with_aspect_to参数支持此选项。

一个简单的例子如下:

class Contact(OrderedModel):
user = models.ForeignKey(User) phone = models.CharField() order_with_respect_to = ‘user’

管理集成

若要在“管理更改列表”页中添加箭头以进行重新排序,可以使用 orderedmodeladmin上移下移链接字段:

from django.contrib import admin from ordered_model.admin import OrderedModelAdmin from models import Item

class ItemAdmin(OrderedModelAdmin):
list_display = (‘name’, ‘move_up_down_links’)

admin.site.register(Item, ItemAdmin)

测试套件

需要Docker。

$ script/test

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleFramework和工厂方法   Java适当地处理异常   java单例类不起作用   java小程序和Swing在eclipse中不显示组件   多个键上的java Redisson FastRemove不起作用   java验证请求正文不等于模式   在Java中从URL读取数据   eche RecyclerView项的java Set自定义字体   string Java如何从Date获取HH:mm:ss   当Java应用程序落后于负载均衡器时,在某些URL上强制使用SSL   使用esapi时发生java错误   java使用流根据第二个列表中的值更新一个列表中的对象   组织。openqa。硒。Java中的NoTouchElementException WebDriver?   从JSON字符串Java创建CSV文件