Python 是否可以按django模型名称对查询进行排序?

Python 是否可以按django模型名称对查询进行排序?,python,django,Python,Django,我用它来帮助管理一些django模型中的继承,但我遇到了一个问题 简而言之,我有一个通过继承类型合并多个模型的外键,我想知道的是,是否可以根据模型名对查询进行排序 在下面的示例中,是否可以对建筑物QuerySet进行排序,以便按该顺序显示公寓、餐厅和商店 models.py: views.py: 在您的示例中,您使用的是所谓的“多表继承”或“具体继承”,即为每个模型建筑、公寓、餐厅和商店创建一个表,父级和子级之间有一个隐式的OneToOneField。这几乎总是不可取的,因为它会产生一些SQL开

我用它来帮助管理一些django模型中的继承,但我遇到了一个问题

简而言之,我有一个通过继承类型合并多个模型的外键,我想知道的是,是否可以根据模型名对查询进行排序

在下面的示例中,是否可以对建筑物QuerySet进行排序,以便按该顺序显示公寓、餐厅和商店

models.py:

views.py:


在您的示例中,您使用的是所谓的“多表继承”或“具体继承”,即为每个模型建筑、公寓、餐厅和商店创建一个表,父级和子级之间有一个隐式的OneToOneField。这几乎总是不可取的,因为它会产生一些SQL开销

如果您不打算向子建筑添加额外的字段,则最好向建筑添加字段类型,以选择建筑类型,例如,使用具有自然顺序的IntegerField。然后,您可以轻松列出按该字段排序的建筑物:

buildings = buildings.order_by('type_')
def show_agents_buildings(request,agent):
    buildings = models.Buildings.objects.filter(managed_by=agent).select_subclasses()
    if request.GET.get("sort",None) = "building_type"
        buildings = buildings.order_by("????")
buildings = buildings.order_by('type_')