2013-09-06 29 views

Trả lời

9

Đây là tham chiếu đến phần quản trị của django. Trong phần quản trị tương ứng với các mô hình, mỗi mô hình có một thuộc tính được gọi là list_display, điều khiển trường nào được hiển thị trên danh sách thay đổi (danh sách hiển thị tất cả các đối tượng) của quản trị viên.

Bây giờ, nếu bạn muốn thay đổi thứ tự sắp xếp mặc định cho was_published_recently trong list_display, bạn có thể làm như vậy bằng cách đặt thuộc tính admin_order_field.

Vì vậy, trong ví dụ:

class Poll(models.Model): 
    # ... 
    def was_published_recently(self): 
     return self.pub_date >= timezone.now() - datetime.timedelta(days=1) 
    was_published_recently.admin_order_field = 'pub_date' 
    was_published_recently.boolean = True 
    was_published_recently.short_description = 'Published recently?' 

Bạn đang thêm một cột tùy chỉnh được gọi was_published_recently và xác định thứ tự sắp xếp được các lĩnh vực cơ sở dữ liệu pub_date khi "loại" tùy chọn cho cột was_published_recently được nhấp.

Bạn có thể hiểu được điều này tốt hơn bằng cách di chuyển xuống các thông tin liên quan đến admin_order_field trong this link

+1

Câu trả lời này là gần như hoàn hảo, nhưng mã bạn trích dẫn không phải là những gì tạo ra các cột tùy chỉnh cho 'was_published_recently'. Mã thực hiện trong 'polls/admin.py' trong lớp' PollAdmin'. Đó là dòng: 'list_display = ('question', 'pub_date', 'was_published_recently')'. Mã bạn đã hiển thị (từ 'poll/models.py') sửa đổi trạng thái mặc định của cột đó. – liquidki

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