![]() |
1
5
我讨厌这个问题…我经常碰到它。 对于我最近的django网站,我们有一个包含n篇文章的时事通讯,当然,订单很重要。我将默认顺序指定为ascending article.id,但如果项目不是按“正确”顺序输入,则此操作失败。 在newsletter change.html页面上,我使用接口插件添加了一点jquery魔力。( http://interface.eyecon.ro/ )我显示了相关文章的标题,用户可以随意拖动它们。有一个onchange处理程序重新计算项目。ID在项目订单字段中。
享受,
对于app=content,model=newsletter,以下是 模板/admin/content/newsletter/change_form.html
|
![]() |
2
2
“添加了一个编号的订单字段”-很好。 “用新订单号更新所有商品”-可避免。 使用有间隙的数字。
|
![]() |
3
2
我在过去的一段时间里从事过两个项目,但我遇到了这个问题。对于我的示例解决方案,我有一个“表单”,它分配了许多“变量”,表单上变量的顺序需要是可排序的。因此,我实施了以下措施: 模特儿
上面的键是variableorder commaseparatedintegerfield,我们将在其中存储表单上变量的顺序,并将其用作python列表,这就是默认值为[]的原因。 对于模板,我在中呈现变量,我们将使拖放可排序(我实际使用的列表元素有更多与CSS相关的样式和变量信息)。
现在,我们将对列表进行拖放以更改顺序。 要实现这一点,您需要将django站点中的ajax CSRF片段放在头上。
上面的重要部分是,每当发送Ajax的变量发生位置变化时,“更新”都会调用函数。ToArray on Sortable和JSON Stringify让我们发送每个变量的从上到下的ID,视图使用这些ID如下。 注意:我将活动表单对象保留为会话变量,但在另一种情况下,您只需要调用要更改顺序的表单对象。
所有这些的关键在于,通过计算字符串,可以将此commaseparatedintegerfield用作列表。例如: 添加变量 :
删除变量 :
按顺序呈现变量 :
这是我将要使用的初稿,但对我来说效果很好。第一个明显的改进是对python列表的评估是类中的一个方法。如。
然后,当想要操作列表时,只需调用form.getvarorder()。无论如何,希望这能有所帮助。 JD |
![]() |
4
1
我经常遇到这种情况,以至于我决定在BL或UI中动态地管理它们,然后只要用户满意,就将排序坚持到专门构建的列中。SQL只是故意设计为不处理订单,它总是反击。 |
![]() |
5
0
这是一个很晚才回答的问题,但我只是想插嘴一下,指出对于这类事情,B-树是一个很好的数据结构,特别是如果您的访问模式不要求您立即检索整个列表。 |
|
Johnny T · 基于当前值的SQL合并表[重复] 4 月前 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
ojek · 如何对SQL结果进行分组和编号? 5 月前 |
![]() |
senek · 如何在PL/SQL中将选择结果(列)放入数组中 5 月前 |
![]() |
Sax · 规范化Google表格(第一步) 5 月前 |
![]() |
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 5 月前 |
![]() |
Andrus · 如何在sql中查找第二个匹配项 5 月前 |