Сортировка связанных записей в рекурсивном отношении - PullRequest
0 голосов
/ 29 апреля 2011

У меня следующий класс с рекурсивным внешним ключом. Вопросы и ответы, хранящиеся в одной таблице.
Вопрос, тип = 'q'
Тип ответа = 'a'

Я хочу отсортировать вопросы по дате в DESC, где в качестве зависимого ответа нужно отсортировать в порядке ASC. Как я могу сделать в Джанго?

class Talk(models.Model):
    user = models.ForeignKey(User)
    destination = models.ForeignKey(Destination)
    text = models.TextField()
    type = models.CharField(max_length=30)
    sup = models.ForeignKey('self', blank=True, null=True, related_name='child')
    created_dt = models.DateTimeField(auto_now_add=True)
    thumb_up = models.IntegerField()
    thumb_down = models.IntegerField()

class Meta:
        ordering = ["-created_dt"] 

1 Ответ

0 голосов
/ 29 апреля 2011
questions = Talk.objects.filter(type='q')

ответит на все ваши вопросы при заказе по умолчанию. Чтобы отсортировать ответы на конкретный вопрос, скажем, самый новый, используйте order_by:

question = questions[0]

sorted_answers = Talk.objects.filter(sup=question).order_by('created_dt')

или

question.child.order_by('created_dt')

Что выглядит забавно из-за того, что вы использовали для своего related_name

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...