1

我正在尝试对更改列表中的外键进行排序,但它还没有工作。(我看到在表格中点击排序的时候,外键的时候会出错)

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。

4

1 回答 1

2

formfield_for_foreignkey仅覆盖下拉菜单。

您可能想要的是在模型中订购Meta

 class TestSoftware(models.Model):
      class Meta:
           ordering = ['name']
于 2013-08-16T06:48:08.380 回答