Django管理员选择与默认模型排序不同的排序

nem*_*ign 8 python django django-models django-admin

我有一个模型(节点),它在管理员中按日期排序,因此首先显示最新的节点.这可以.

相同的模型(节点)由另一个模型(设备)引用.编辑设备时,有一个节点列表(在HTML选择中),它也按日期排序.我希望这个选择按名称排序,而不是按日期排序.

是否可以有两种不同的排序方法,一种用于对象列表,另一种用于选择框?

谢谢.

Ism*_*awi 6

最简单的formfield_for_foreignkey方法是覆盖ModelAdminfor中的方法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)
Run Code Online (Sandbox Code Playgroud)

(我在这里假设相当数量.希望很清楚!)

同样的formfield_for_manytomany.