2013-08-16 89 views
1

我試圖對更改列表中的外鍵進行排序,但它還沒有正常工作。 (我已經看到,點擊表格中的排序時,它得到錯誤的,當外鍵)無法對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工作,但我得到的還是由ID而不是排序列表外鍵的名稱。

任何解決方案?我使用的是django 1.4.1。

回答

1

formfield_for_foreignkey只覆蓋下拉菜單。

你可能想要的是在訂購模式的Meta

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

事實上,它是不是在下拉菜單中,但似乎在一開始的變化列表。當通過單擊標題列排序時,它不起作用 – Ruben

+1

是的。這就是爲什麼你應該在你想分類的外國模型上添加'排序'。 –

+0

這仍然適用於Django 2.0.2 – thedboydguy

相關問題