Tôi đang cố gắng nhổ ra một trang django liệt kê tất cả các mục nhập theo năm chúng được tạo. Vì vậy, ví dụ:Django: Lọc trường datetime theo * chỉ * giá trị năm?
2010:
Chú giải 4
Thuyết minh số 5
Note 6
2009:
Note 1
Note 2
Note 3
Nó chứng minh khó khăn hơn tôi sẽ mong đợi. Mô hình mà từ đó dữ liệu đến bên dưới:
class Note(models.Model):
business = models.ForeignKey(Business)
note = models.TextField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
class Meta:
db_table = 'client_note'
@property
def note_year(self):
return self.created.strftime('%Y')
def __unicode__(self):
return '%s' % self.note
Tôi đã thử một vài cách khác nhau, nhưng dường như chạy vào rào cản trên mọi con đường. Tôi đoán một phương pháp 'nhóm theo' hiệu quả sẽ làm các trick (PostGres DB Backend), nhưng tôi dường như không thể tìm thấy bất kỳ chức năng Django nào hỗ trợ nó. Tôi đã cố gắng nhận được những năm riêng lẻ từ cơ sở dữ liệu nhưng tôi đã cố gắng tìm cách lọc các trường datetime chỉ bằng giá trị năm. Cuối cùng, tôi đã thử thêm note_year @property nhưng vì nó có nguồn gốc, tôi không thể lọc các giá trị đó.
Bất kỳ đề xuất nào cho một cách thanh lịch để thực hiện việc này? Tôi nghĩ nó khá đơn giản, nhưng tôi có một thời gian heckuva với nó. Bất kỳ ý tưởng nào được đánh giá cao.
* cười * Can' Tôi tin nó thật dễ dàng; dành nhiều giờ tìm kiếm loại chức năng này. Cảm ơn nhiều. – PlankTon