无法在django管理列表中对外键字段进行排序

时间:2013-08-16 06:36:31

标签: django sorting django-admin foreign-keys

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

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 个答案:

答案 0 :(得分:1)

formfield_for_foreignkey仅覆盖下拉菜单。

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

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