Есть у нас модель Конкурс:
class Contest(models.Model):
"""
Конкурс, проводимый ежегодно
"""
title = models.CharField(max_length=200, verbose_name='Название конкурса')
year = models.SlugField(unique=True, max_length=4, verbose_name='Год конкурса')
description = models.TextField(verbose_name='Описание конкурса')
def __unicode__(self):
return unicode(self.year + " " + self.title)
class Meta:
verbose_name = 'Конкурс'
verbose_name_plural = 'Конкурсы'
Допустим мы хотим использовать ее в модели Призер:
class Prizer(models.Model):
contest = models.ForeignKey(Contest, verbose_name=u'Конкурс')
# другие поля...
class Meta:
verbose_name = 'Призер'
verbose_name_plural = 'Призеры'
Вот как в админке Django отобразится модель
Prizer и поле
contest:
Для того, чтобы эти записи в выпадающем списке были отсортированы по-порядку, в классе Contest добавим:
class Contest(models.Model):
# все то же, что написано выше
class Meta:
# ...
#вот эта магическая строчка для сортировки:
ordering = ('year',)
После этого записи будут отсортированы в используемом поле ForeignKey по-порядку: