Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Сортировка модели в admin при заполнении foreign key [RSS Feed]

#1 Ноя. 23, 2009 14:48:16

vvp91
От:
Зарегистрирован: 2009-06-08
Сообщения: 33
Репутация: +  0  -
Профиль   Отправить e-mail  

Сортировка модели в admin при заполнении foreign key

Суть проблемы в следующем:
1. Есть model_1 для которой задана сортировка по наименованию (Meta.ordering=).
2. Есть model_2, которая ссылается на model_1 (имеет поле “model_1 = ForeignKey(model_1)”).
3. При заполнении в админке поля model_1 для экземпляра model_2, хтмл-селект поля model_1 отсортирован по id.
Необходимо, чтобы список возможных значений внешнего ключа был отсортирован по model.Meta.ordering!
Поигрался с сортировкой ModelAdmin.ordering - пустой номер, сортировка в хтмл-селекте остается по идентификатору.

ВАЖНОЕ ДОПОЛНЕНИЕ: модель model_1 наследует от абстрактной модели model_0, а сортировка Meta.ordering= задана именно для родителя и не переопределяется в наследнике!

Проблема решается созданием дефолтного менеджера для модели, который отсортирован по нужному полю.

Посмотрел обсуждение проблемы в code.djangoproject.com, в groups.google.com и т.д. - там вопросы о сортировке хтмл-селекта согласно Meta.ordering мгновенно переводятся с статус closed без объяснений.
В документации так же есть явные указания на необходимость создания Automatic Manager и use_for_related_fields = True.

Посмотрел, как можно поправить джангу для того, чтобы она поддерживала нужное мне поведение.
Более того, считаю такое поведение самым верным - люди в основной своей массе работают со списками названий, а не идентификаторов, и приходится делать много лишних телодвижений.

Прежде чем открывать новый тикет и размещать патч, хотел обсудить необходимость сортировки хтмл-селекта по полю внешнего ключа в админке согласно model.Meta.ordering.

ДОПОЛНЕНИЕ: открывать тикет таким образом надо для наследования моделей.



Отредактировано (Ноя. 23, 2009 16:03:46)

Офлайн

  • Начало
  • » Django
  • » Сортировка модели в admin при заполнении foreign key[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version