我有以下型號的結果(簡單的例子當然):Django的ORM - ORDER_BY的選擇上外鍵
class ParentModel(Model):
id = IntegerField(primary_key=True)
family = OneToOneField(Family)
objects = SpecificManagerThatDoesAlotOfQueryLogic()
class Family(Model):
id =IntegerField(primary_key=True)
class Child(Model):
family = ForeignKey(Family, related_name='children')
is_the_relevent_child = BooleanField(default=False) #Only one Child would have this a s
score_to_sort_by = DecimalField()
哪裏需要返回的ParentModel
一個queryset
(是的,我需要這是一個queryset
,所以後面會發生的分頁等不會中斷),這是family__children__score_to_sort_by
使用is_the_relevent_child
標誌來選擇我訂購的子項。
我知道,如果孩子已經到家庭OneToOne關係,我可以與:
ParentModel.objects.filter(**{something:something}).order_by('family__child__score_to_sort_by')
我知道這個造型是不太適合這樣做,但我需要它等原因,使我需要讓查詢集工作 我懷疑註解可以幫助我,但我無法弄清楚(或者如果有人能指出我使用了一些額外的SQL,我也可以處理這些,如果不是太複雜的話) ,我們正在使用django 1.6 任何想法?謝謝..
看起來合法,我會嘗試 – alonisser