2009-03-24 28 views
9

Tôi muốn tạo trang archive_index cho trang web django của mình. Tuy nhiên, chế độ xem chung dựa trên ngày thực sự không phải là bất kỳ trợ giúp nào. Tôi muốn từ điển được trả về bởi khung nhìn để có tất cả các năm và tháng mà ít nhất một thể hiện của kiểu đối tượng tồn tại. Vì vậy, nếu blog của tôi bắt đầu vào tháng 9 năm 2007, nhưng không có bài viết nào trong tháng 4 năm 2008, tôi có thể có được một cái gì đó như thế nàyChọn năm và tháng riêng biệt cho Lưu trữ Django Trang

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

Trả lời

33

này sẽ cung cấp cho bạn một danh sách các ngày niêm yết duy nhất:

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

Tất nhiên bạn có thể không cần bộ lọc nháp và thay đổi 'post_date' thành tên trường của bạn, v.v.

+3

Đối với bất kỳ ai có 'DateTimeField', nó chỉ đơn giản là' .datetimes (...) '. – Pureferret

1

Bạn sẽ có thể nhận được tất cả các thông tin bạn mô tả từ được xây dựng trong quan điểm. Bạn có thể cụ thể hơn về những gì bạn không thể có được không? Điều này sẽ có mọi thứ bạn cần:

django.views.generic.date_based.archive_month 

Reference page (tìm kiếm các chuỗi trên trên trang đó)

+0

Không, điều đó cung cấp cho các đối tượng thực tế trong tháng. Tôi không muốn các đồ vật. Tôi chỉ muốn những tháng và năm riêng biệt. – Apreche

10

Tôi tìm thấy câu trả lời cho câu hỏi của riêng mình.

It's on this page trong tài liệu.

Có chức năng được gọi là ngày sẽ cung cấp cho bạn ngày tháng riêng biệt. Vì vậy, tôi có thể làm

Entry.objects.dates ('pub_date', 'month') để nhận danh sách các đối tượng datetime, một cho mỗi năm/tháng.

+0

Điều đó thật buồn cười bạn có thể trả lời câu hỏi của riêng bạn. Tôi cũng sẽ thêm những phát hiện của bạn vào bài đăng gốc của bạn. –

Các vấn đề liên quan