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

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

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

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

Благодарю.

Проще всего было бы переопределить метод 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