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

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第三方库


热门话题
IE中的java跨域cookie问题   重复java中已经满足的循环   编译java RMI服务器时出错   JavaServlet POST中作为参数传递的javascript大型JSON数组数据为空   java片段未每次刷新/调用   java无法编译。错误消息   java如何构造大型类?   java Hibernate:TableThingsDB。事情并不存在   java如何操作从匹配项创建的数组。发现   循环以搜索和显示数组Java的某些部分   加载或注册SQLite JDBC驱动程序时出现java问题   活动和服务之间的java连接   JavaGWTG2D:ie8中的drawImage   java在安卓中设置hessian阈值   在Tomcat中使用Logback时发生java错误