【问题标题】:Order items with the django-admin interface使用 django-admin 界面订购商品
【发布时间】:2011-06-12 07:02:49
【问题描述】:

假设我有一个看起来像这样的 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 管理界面中编辑订单字段?现在我必须去编辑问题,而不是查看要在订单字段中输入的数字,甚至可能重新排序所有其他项目。我真正想要的是管理页面上列出所有问题的一些“上下”箭头。

这可能吗?

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    检查这个:django-orderedmodel

    这是一个非常简单的抽象基类实现,用于可以通过管理界面订购的项目。没有外部依赖,易于使用。

    【讨论】:

      【解决方案2】:

      当然,这是一个 admin.py 文件的示例,其中包含用于更改项目顺序的上下链接: https://github.com/alexvasi/django-simplemenu/blob/master/simplemenu/admin.py

      基本上,您只需要重写 get_urls 方法即可添加您的自定义视图(在此示例中为 move_upmove_down)。

      更著名的例子是django-treemenus,但有一些额外的代码来支持旧版本的 django。

      【讨论】:

        【解决方案3】:

        【讨论】:

        • 抱歉,您可能误解了我的意思。我想更改“订单”字段中的值,以便我的视图可以按照我指定的顺序显示项目。使用您概述的选项,我只能修改元素在管理视图中的显示方式,不是吗?
        • 你是对的 - 我已经更新了我的答案。不过,我不认为您可以在编辑项目时轻松地即时重新排序项目 - 您仍然需要刷新页面。
        【解决方案4】:

        如果其他人在 2017 年寻求该问题的解决方案,我找到了很棒的包Django Admin Sortable

        【讨论】:

          猜你喜欢
          • 2019-05-29
          • 2018-09-20
          • 2017-01-29
          • 1970-01-01
          • 1970-01-01
          • 2010-12-17
          • 1970-01-01
          • 2010-10-09
          • 2016-08-19
          相关资源
          最近更新 更多