订购Django的查询结果外键

问题描述:

我有一个设置为模型如下:订购Django的查询结果外键

class Log(models.Model): 
    name = models.ForeignKey(User) 
    date = models.DateField() 
    time = models.TimeField() 

我知道这是不行的,但在那里我可以运行查询像这样任何其他方式:

Logs.objects.filter(date=someDate).order_by('name__last_name') 

我只需要最后的结果是由由ForeignKey相关用户的姓氏下令QuerySet

我真的在我的智慧结束这一个。 任何事情都会有所帮助:一些我没有看过的方法,一个实际的原始SQL查询,甚至只是一个普遍的想法,将不胜感激!

+3

你增加了一个在你的查询日志。这应该是'Log.objects.filter(date = someDate).order_by('name__last_name')' – DTing 2011-04-22 00:25:59

您输入的查询看起来有效。

看文档here的订单。

它不适合你吗?

例如(格式为便于阅读):

>>> units = Unit.objects.filter(color='red').order_by('location__label') 
    >>> print units.query 
    SELECT `samples_unit`.`id`, `samples_unit`.`location_id`, `samples_unit`.`color` 
     FROM `samples_unit` 
INNER JOIN `storages_container` 
     ON (`samples_unit`.`location_id` = `storages_container`.`id`) 
    WHERE `samples_unit`.`color` = red 
    ORDER BY `storages_container`.`label` ASC 
+1

它确实有效,现在就是这样。 @DTing指出了我在调用中导致整个问题的一个非常小的拼写错误。不知何故,我只是无法从错误消息中推断出来! – chandsie 2011-04-22 01:00:41