在我的数据库模型中,我有姓和名.在django-admin站点中,我想显示"LASTNAME,FIRSTNAME",并使该列可排序.为此,我在我的admin.ModelAdmin
班级中使用了@admin.display
个decorator .
此修饰符接受ordering
参数,该参数可以是字符串,引用要排序的模型字段名,例如:
@admin.display(description = "Full name", ordering = "last_name")
def full_name(self, obj):
return f"{obj.last_name}, {obj.first_name}"
然而,显然,这只能按last_name
进行排序,因此,姓氏相同的人将以任意顺序结束.我试过了:
@admin.display(description = "Full name", ordering = ["last_name", "first_name"])
或者使用列表而不是元组,但这失败了("‘tuple’对象没有‘startswith’属性").
我搜索了一下,发现我的问题在这里没有得到确切的回答:https://forum.djangoproject.com/t/how-to-tell-admin-display-decorator-to-order-the-results-by-two-columns/21418也在这篇文章中:Django-admin order by multiple fields有人建议直观的列表语法可以与"排序"一起使用,但这似乎不适用于装饰符.