Django admin выбирает порядок, отличный от стандартного заказа модели

У меня есть модель (Node), которая упорядочена по дате в admin, поэтому сначала отображаются самые последние узлы. Это отлично.

На ту же модель (Node) ссылается другая модель (Устройство). При редактировании устройства есть список узлов (в выборе HTML), который также упорядочен по дате. Я бы хотел, чтобы этот выбор был заказан по имени, а не по дате.

Возможно ли иметь два разных метода упорядочения: один для списка объектов и один для поля выбора?

Благодарю.

3 Solutions collect form web for “Django admin выбирает порядок, отличный от стандартного заказа модели”

Проще всего было бы переопределить метод formfield_for_foreignkey в ModelAdmin для Device , что-то вроде

 def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == 'node': kwargs['queryset'] = Node.objects.order_by('name') return super(DeviceAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) 

(Я принимаю здесь справедливую сумму. Надеюсь, это ясно!)

Точно так же есть formfield_for_manytomany .

Вы пробовали что-то вроде:

 class Node name = ... date = ... fields .... class Meta: order_with_respect_to='Device' ordering = ('Device', 'name') 

Вы можете создать пользовательскую форму для DeviceAdmin и установить параметр queryset для поля «Node».

 # in models.py we have Device model with Node field class Device(models.Model): node = models.ForeignKey(Node) ... # in admin.py we have DeviceAdmin with custom form class DeviceAdminForm(forms.ModelForm): node = forms.ModelChoiceField(queryset=Node.objects.order_by('name'), label='Node') class Meta: model = Device class DeviceAdmin(admin.ModelAdmin): form = DeviceAdminForm 
  • Как фильтровать объекты для аннотации count в Django?
  • Django или аналогичный для составных первичных ключей
  • UnicodeEncodeError при попытке конвертировать Django-модели в XML
  • Как я могу использовать автоматически созданный неявный класс модели в Django в поле ForeignKey?
  • Рабочий процесс Django при частом изменении моделей?
  • Django - как продлить сторонние модели без изменения
  • добавить поле first_name и last_name в django-profile
  • django TransactionManagementError при использовании сигналов
  • Python - лучший язык программирования в мире.