Pergunta

Eu quero fazer uma página archive_index para o meu site django. No entanto, os pontos de vista genérico com base em datas não são realmente qualquer ajuda. Eu quero o dicionário retornado pela visão de ter todos os anos e meses para os quais existe pelo menos uma instância do tipo de objeto. Então, se meu blog começou em setembro de 2007, mas não havia mensagens em abril de 2008, eu poderia obter algo como isto

2009 - Jan, Feb, Mar
2008 - Jan, Feb, Mar, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
2007 - Sep, Oct, Nov, Dec
Foi útil?

Solução

Isto lhe dará uma lista de datas de lançamento únicas:

Posts.objects.filter(draft=False).dates('post_date','month',order='DESC')

É claro que você não pode precisar o projecto de filtro, e mudança 'post_date' para o seu nome do campo, etc.

Outras dicas

Eu encontrei a resposta à minha pergunta.

É desta página na documentação.

Há uma função chamada datas que lhe dará datas distintas. Então eu posso fazer

Entry.objects.dates ( 'pub_date', 'mês') para obter uma lista de datetime objetos, um para cada ano / mês.

Você deve ser capaz de obter todas as informações que descrevem a partir dos pontos de vista internos. você pode ser mais específico sobre o que você não pode ficar? Este deve ter tudo o que precisa:

django.views.generic.date_based.archive_month

página Referência (procure a string acima nessa página)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top