2010-06-18 28 views
7

Có thể có một DateField không có năm nào không? Hoặc tôi sẽ phải sử dụng CharField? Tôi đang sử dụng quản trị viên để chỉnh sửa các mô hình.Django DateField không có năm

Trả lời

1

A DateField là toàn bộ ngày. Nếu bạn chỉ quan tâm đến tháng và ngày thì hãy sử dụng __month__day khi truy vấn.

+0

vì vậy nếu tôi muốn lấy một queryset của tất cả các ngày sau ngày hôm nay nó sẽ là một cái gì đó như: today = datetime.date.today() Object.object.filter(date__day=today).exclude() ? Cảm ơn – Ali

1

Bạn cần quyết định xem bạn có đồng ý với đối tượng ngày thông thường trên mô hình (và DB) và chỉ tùy chỉnh tiện ích con hoặc nếu bạn muốn lưu trữ dữ liệu có dữ liệu cụ thể.

Nếu bạn chỉ muốn biểu mẫu hiển thị ngày và tháng, bạn cần phải viết một tiện ích tùy chỉnh và móc nó lên biểu mẫu trong lớp ModelAdmin. Tài liệu của Django có phần giới thiệu khá hay về cách viết custom fieldscustom widgets

Trong cả hai trường hợp, dễ dàng hơn để phân lớp Mô hình/tiện ích hiện tại và thay đổi hành vi bạn muốn.

0

này làm việc cho tôi:

data_sorted = sorted(My_Model.objects.all(), key=lambda e: e.myDataField.strftime("%m-%d")) 
Các vấn đề liên quan