在django-admin界面中排序项目
假设我有一个Django模型,长得像这样:
class question(models.Model):
order = models.IntegerField('Position')
question = models.CharField(max_length= 400)
answer = models.TextField()
published = models.BooleanField()
def __unicode__(self):
return self.question
在我的视图中,我把所有的问题按照顺序字段从小到大排列显示。
我想问的是:在Django的管理界面中,有没有简单的方法来编辑这个顺序字段?现在,我得先去编辑问题,然后查找要放在顺序字段里的数字,甚至可能还要重新排列其他所有的项目。我真正想要的是在管理页面上,所有问题列出来的时候,能有一些“上下”箭头来调整顺序。
这可能吗?
5 个回答
2
你可以使用 django-admin-sortable2 这个工具,轻松地调整项目的顺序,包括那些嵌套在其他项目里的项目。
12
看看这个:django-orderedmodel。
这是一个非常简单的抽象基类实现,可以让你在管理界面中对项目进行排序。它没有外部依赖,使用起来也很简单。
5
当然,这里有一个 admin.py 文件的例子,里面有上下链接可以用来改变项目的顺序:https://github.com/alexvasi/django-simplemenu/blob/master/simplemenu/admin.py
其实,你只需要重写 get_urls 这个方法,就可以添加你自己的视图(在这个例子中是 move_up
和 move_down
)。
一个更有名的例子是 django-treemenus,不过它有一些额外的代码来支持旧版本的 Django。