Kai
Kai

Reputation: 2325

Order items with the django-admin interface

Lets say I have a django model looking like this:

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

In my view I show all of the questions ordered ascending by the order field.

My question is: Is there an easy way to edit the order field in the django admin interface? Right now, I have to go to edit the Question, then look up what number to put in the order field and maybe even reorder all the other items. What i really want would be some "up and down"-arrows on the admin page where all the questions are listed.

Is that possible?

Upvotes: 11

Views: 8617

Answers (5)

You can use django-admin-sortable2 to easily change the order of items including inline items as well.

Upvotes: 2

Sergei V Kim
Sergei V Kim

Reputation: 205

In case someone else is seeking the solution for that issue in 2017, I found the great package Django Admin Sortable

Upvotes: 0

kirelagin
kirelagin

Reputation: 13616

Check this: django-orderedmodel.

This is a really simple implementation of abstract base class for items which can be ordered with admin interface. No external dependencies and easy to use.

Upvotes: 12

alex vasi
alex vasi

Reputation: 5344

Sure, here is an example of admin.py file with up and down links to change items order: https://github.com/alexvasi/django-simplemenu/blob/master/simplemenu/admin.py

Basically, you just need to override get_urls method to add your custom views (move_up and move_down in this example).

More famous example would be django-treemenus, but there is some extra code to support older versions of django.

Upvotes: 5

Related Questions