django按相关领域排序

时间:2010-01-14 16:51:59

标签: django django-models

我想通过相关字段对联系人的QuerySet进行排序。但是我不知道怎么做。 我试过这样,但它不起作用。

foundContacts.order_by("classification.kam")

实际上,在模板中,我可以通过contact.classification.kam访问联系人的kam值,因为它是OneToOne关系。

(简化)模型如下所示:

class Classification(models.Model):
    kam = models.ForeignKey(User)
    contact = models.OneToOneField(Contact)

class Contact(models.Model):
    title = models.ForeignKey(Title, blank=True, null=True)
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)

2 个答案:

答案 0 :(得分:28)

应该是:

foundContacts.order_by("classification__kam")

这是关于Django文档的链接,用于进行跨越关系的查询:http://docs.djangoproject.com/en/1.1/topics/db/queries/#lookups-that-span-relationships

您还可以在order_by参考中看到一些示例:
https://docs.djangoproject.com/en/1.6/ref/models/querysets/#django.db.models.query.QuerySet.order_by

答案 1 :(得分:0)

如文档所示,应在有关模型的查询中使用

https://docs.djangoproject.com/en/3.0/ref/models/querysets/#order-by

foundContacts.order_by("classification__kam")