假设我在Django有一个博客应用程序。如何在默认管理中使用可拖动表重新排序帖子?
如果我不需要向模型中添加任何额外的字段,那将是最好的,但如果真的有必要的话,我可以这样做。
发布于 2008-09-21 13:59:59
要获得能做到这一点的工作代码,请在djangosnippets.org上查看snippet 1053。
发布于 2008-09-21 11:49:27
注意“如果我不需要向模型添加任何额外的字段,那将是最好的,但如果我真的必须这样做,我可以这样做。”
很抱歉,数据库中信息的顺序是由信息本身决定的:您总是需要添加一列进行排序。这真的是别无选择。
此外,要按此顺序检索内容,需要专门向查询中添加.order_by(x)
或向模型中添加ordering
。
class InOrder( models.Model ):
position = models.IntegerField()
data = models.TextField()
class Meta:
ordering = [ 'position' ]
如果没有额外的字段,则无法进行排序。这是关系数据库的规则之一。
发布于 2013-05-02 16:13:17
现在有一个很好的包可以对管理对象进行排序
https://github.com/iambrandontaylor/django-admin-sortable
此外,django-suit还内置了对此的支持
https://stackoverflow.com/questions/110774
复制相似问题