Могу ли я сделать заказ в день в месяц? - PullRequest
1 голос
/ 21 июля 2011

Я пытаюсь создать список дней рождения, упорядоченных по датам, мой набор запросов:

birth_days = get_list_or_404(UserProfile.objects.order_by('-birthDate'), birthDate__month=datetime.datetime.now().month)

Как я могу получить список, упорядоченный по дням в месяце, чтобы был упорядочен список дней рождения, сейчас он упорядочен по всей дате, так что если у двух человек день рождения в этом месяце и у человека 1 дата скажем, 20/7/1980, а человек 2 дата 17/7/7070, человек 2 все еще будет после человека 1 в списке. Меня не волнует год рождения, только месяц и день месяца ....

Могу ли я сделать в порядке, примерно так:

order_by ( '- birthDate__day')

Я знаю, что не могу этого сделать, потому что это не работает, просто спрашиваю, есть ли способ сделать это (во взгляде, не в модели в данном случае ... не то, чтобы я думал, что это имеет значение) тут просто говорю)?

Спасибо, Эрез

1 Ответ

2 голосов
/ 21 июля 2011

Вы можете извлечь день как «дополнительное» поле, а затем отсортировать по нему, например:

UserProfile.objects.select(extra={'birth_day': 'extract(day from birthDate)'}).order_by('-birth_day')

Это должно работать как минимум с PostgreSQL.

...