Django создать список дат из набора запросов - PullRequest
3 голосов
/ 05 августа 2010

Я хочу создать список различных значений месяца / года на основе полей даты в моей базе данных.Например, в моей таблице

id |date_added |название

1 |01.06.2010 |????

2 |02.09.2009 |????

3 |24.08.2009 |????

4 |15.06.2009 |????

5 |16.06.2009 |????

и эта таблица из модели article

как бы я создать список:

['June 2009', 'August 2009', 'September 2009', 'January 2010']

Ответы [ 3 ]

6 голосов
/ 05 августа 2010

Я предполагаю, что вам нужно ['Июнь 2009', 'Август 2009', 'Сентябрь 2009', 'Январь 2010'] для отображения в ваших шаблонах. Если это так, то вы можете сделать что-то вроде

Article.objects.values_list('date_added', flat=True)

, который даст вам список этих дат. Затем вы можете использовать шаблонный фильтр date для вывода того, что вы хотите.

Что-то вроде

{% for item in your_dates_list_that_you_passed_to_the_template %}
    {{ item|date:"F Y" }}
{% endfor %}

[EDIT]

Относительно вашего требования к «отличным», см. http://docs.djangoproject.com/en/dev/ref/models/querysets/#distinct

3 голосов
/ 05 августа 2010

Использование фильтра dates() в итоге решило мою проблему, хотя оба приведенных выше ответа дали мне результаты, которые я хотел.

http://docs.djangoproject.com/en/dev/ref/models/querysets/#dates-field-kind-order-asc

0 голосов
/ 05 августа 2010

Я бы хотел сделать это, сопоставив функцию для форматирования столбца даты в наборе запросов.Как то так:

queryset = Article.objects.filter()
print map(lambda article: article.date_added.strftime('%B %Y'), queryset)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...