Упорядочить по количеству связанных объектов

У меня есть следующие модели:

class Sentence(models.Model):
    text = models.CharField(max_length=200)       
    language = models.ForeignKey(Language)
    pub_date = models.DateTimeField()  

class Traduction(models.Model):
    sentence_from = models.ForeignKey(Sentence, related_name='st_traductions_from')
    sentence_to = models.ForeignKey(Sentence, related_name='st_traductions_to') 

Я хочу получить порядок объектов предложения по количеству связанных с ними объектов Traduction. Я пробовал это с:

sentences = Sentence.objects.annotate(num_traductions=Count('st_traductions_from')) \
            .order_by('-num_traductions') 

Но это вызывает следующее исключение, когда я повторяю его:

Caught DatabaseError while rendering: This query is not supported by the database

Я использую appengine и Django-nonrel.

Спасибо.


person Ivan    schedule 12.10.2011    source источник


Ответы (1)


См.: средство просмотра хранилища данных App Engine, как показать количество записей с помощью GQL?

В GQL нет агрегата count, т.е. count(*). См. http://code.google.com/appengine/articles/sharding_counters.html для альтернативного подхода.

person Chris Pratt    schedule 12.10.2011
comment
В порядке. Наконец, я сделал это, добавив поле num_traductions в модель Sentence, которое увеличивается, когда добавляется новый Traduction и связан с ним. Я думаю, что это более эффективный способ решить эту проблему. - person Ivan; 14.10.2011