首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以按django模型名称对查询进行排序吗?

可以按django模型名称对查询进行排序吗?
EN

Stack Overflow用户
提问于 2014-10-26 09:45:28
回答 1查看 37关注 0票数 0

我正在使用django-model-utils来帮助管理一些django模型中的继承,但我遇到了一个问题。

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

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

models.py

代码语言:javascript
复制
class Building(models.Model):
    objects = InheritanceManager()
    managed_by = fields.ForeignKey(RealEstateAgent)
    name = fields.CharField(max_length=100)

class Apartment(Building):
    pass
class Restaurant(Building):
    pass
class Shop(Building):
    pass

class RealEstateAgent(models.Model):
    pass

views.py

代码语言:javascript
复制
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("????")
EN

回答 1

Stack Overflow用户

发布于 2014-10-26 16:54:15

在您的示例中,您使用了所谓的“多表继承”或“具体继承”,即为每个模型(建筑物、公寓、餐厅和商店)创建一个表,在父级和子级之间使用隐式OneToOneField。

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

代码语言:javascript
复制
buildings = buildings.order_by('type_')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26569012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档