可排序的变更列表、表格和堆叠的内联线、拖放和下拉列表

django-admin-sort的Python项目详细描述


#Django管理分类

[![django管理排序生成状态](https://travis-ci.org/rouxcode/django-admin-sort.svg"django管理排序生成状态")(https://travis ci.org/rouxcode/django管理排序)

使用现有的订单字段,灵活。

r/>
可以在pypi上找到最新的稳定版本。



将"admin sort"添加到项目的"settings.py"文件中的"installed apps"列表中。

installed apps=(
…,
"admin sort",




n sort

此django模块提供两个mixin类,添加到模型的现有类中
admin:

*`` admin sort.admin.sortableadminmixin``
*`` admin sort.admin.sortableinlineadminmixin``

它们稍微修改可排序模型的管理视图。无需从特殊的基本模型类派生模型类。




此模块的唯一要求是将位置值指定为用于排序的主字段。


class sortablebook(models.model):
title=models.charfield('title',null=true,blank=true,max_length=255)
my_order=models.positiveintegerfield(default=0,blank=false,null=false)

class meta(object):
ordering=("我的订单","title",)

这里的ordering字段名为"我的订单",但您可以选择任何其他名称。只有
两个约束:

*``my_order``是模型元类的``order``元组中的第一个字段。
*``my_order``的默认值必须为0。执行排序的javascript是1索引的,
因此这不会影响项目的顺序,即使您已经使用了0索引的排序字段。

django提供的用于存储排序位置的字段可以是任何类型的数字模型字段。使用以下模型字段之一:

*`` models.bigingerfield`
*`` models.integerfield``
*`` models.positiveintegerfield``(推荐)
*`` models.positivesmallintegerfield`(推荐用于小型集)
*`` models.smallintegerfield`

ls.decimalfield``或`` models.floatfield``,但不建议使用这些模型字段


**警告:**不要使此字段唯一!请参阅下面的原因。



\sortable list view


in``admin.py``,添加mixin类以增强排序功能(确保将
mixin类放在model.modeladmin之前):

from django.contrib import admin
from admin sort.admin import sortableadminmixin
从模型导入mymodel

class mymodel admin(sortableadminmixin,admin.modeladmin):
pass
admin.site.register(mymodel,mymodeladmin)

modeladmin界面的列表视图现在添加了一个具有敏感区域的列。
通过单击该区域,用户可以移动那一排上下。如果他想将其移动到另一个
页面,可以使用管理操作将其作为批量操作来执行。



odel

class mysubmodelinline(sortableinlineadminmixin,admin.tabularinline):或admin.stackedinline
model=mysubmodel


class mymodeladmin(admin.modeladmin):
inlines=(mysubmodelinline,)
admin.site.register(mymodel,mymodeladmin)

可排序堆叠内联视图的界面类似。如果单击堆叠的
内联字段标题,则可以上下移动整个内联表单。

然后,这些
行可以上下移动。

移动表格或堆叠的内联之后,保存模型窗体以保持其排序顺序。



et初始排序值。

django admin sort附带一个管理命令,该命令可用于预填充排序字段:


t迁移时,可以进行更高级的修改。

**注意:**如果不使用唯一值预填充排序字段,则在将此字段添加到现有模型后,尝试手动重新排序字段将失败。




Ion,可能会尝试在Ordering字段上添加一个唯一的索引。但在实践中,这有严重的缺点:

mysql有一个特性(或bug?)它要求在批量更新
唯一字段时使用"order by"子句。

事务中的所有字段,也不允许在批量更新时使用"order by"子句。

一个事务中的字段,然后
重建唯一索引。这里不能在更新期间使用'order by'子句,
从sql语义的角度来看,这是毫无意义的。


有关详细信息,请参见https://code.djangoproject.com/ticket/20708。

使用Postgres数据库。



代码::bash

git clone https://github.com/rouxcode/django admin sort.git
cd django admin sort/example/
./manage.py syncdb
./manage.py createsuperuser
./manage.py loaddata testapp/fixtures/data.json
./manage.py runserver

将浏览器指向http://localhost:8000/admin/,登录并转到*可排序的书籍*。在这里您可以
测试这个django应用程序的行为。

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

推荐PyPI第三方库


热门话题
mapDb Java中的序列化序列化和反序列化对象   java Android Studio SearchView图标未出现   java如何在应用程序中集成广告   java如何在startActivityForResult()之前启动startActivity()   java创建DelegateForest并按预定顺序显示   特定url的java筛选器映射   面向对象Java继承:需要多个扩展   我怎样才能避免java。sql。I/O错误导致SQLException:连接重置?   Scala中的java多维数组   java Ifless代码:这只是一个智力上的挑战,还是实际有用?   java为什么我的@override for contains不起作用?   java Hazelcast文件从客户端上载到服务器   java按水平顺序展开单元格?   java从另一个DAO工厂调用一个DAO   java中的日期格式DateFormat提供意外结果   2d如何在java窗口上显示48X48像素的12X12网格图像   使用iText 5提取图像时出现java错误:“颜色空间不受支持”   java如何在Intellij方法中用参数重构为带字段的类