2013-08-16 3 views
1

Я пытаюсь сортировать внешние ключи в списке изменений, но он пока не работает. (Я видел, что при нажатии кнопки для сортировки в таблице, он получает неправильные, когда внешние ключи)Не удается сортировать поля внешних ключей в списке admin django

class ProductVariantAdmin(admin.ModelAdmin): 
    fields=["product", "test_software", "test_variables", "name", "description"] 
    list_display = ("name", "product", "test_software", "test_variables", "description") 
    search_fields = ["name"] 
    form = ProductVariantForm 

    def formfield_for_foreignkey(self, db_field, request, **kwargs): 
     print db_field.name 
     if db_field.name == "test_software_id": 
      kwargs["queryset"] = TestSoftware.objects.all().order_by('name') 
     return super(ProductVariantAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs) 

Я видел, что они работают с formfield_for_foreignkey, но я получаю до сих пор список отсортированный по идентификатору, а не имя внешнего ключа.

Любое решение? Я использую django 1.4.1.

ответ

1

formfield_for_foreignkey только переопределяет раскрывающееся меню.

То, что вы, вероятно, хотите, чтобы заказать в модели Meta:

class TestSoftware(models.Model): 
     class Meta: 
      ordering = ['name'] 
+0

на самом деле, речь идет не о выпадающем меню, но список изменений, который появляется в начале. при сортировке, щелкнув столбцы заголовка, он не работает – Ruben

+1

Да. Вот почему вы должны добавить 'ordering' на чужой модели, которую хотите отсортировать. –

+0

Это все еще работает в Django 2.0.2 – thedboydguy

Смежные вопросы