2012-07-09 22 views
7

tôi đã viết phương pháp riêng của tôi được sử dụng trong list_display (lớp quản trị), như thế này:phương pháp riêng của tôi được sử dụng trong list_display và giá trị như biểu tượng boolean

class MyClassAdmin(admin.ModelAdmin): 

    list_display = ('my_own_method') 

    def my_own_method(self, obj): 
     if [condition]:  
      return True 
     else: 
      return False 

nhưng giá trị này sẽ được hiển thị trong danh sách dưới dạng văn bản (Đúng hay Sai), không phải là biểu tượng boolean django mặc định như sau: enter image description here

Tôi nên làm gì để thay đổi điều này?

Trả lời

9

Thay đổi mã của bạn như sau:

class MyClassAdmin(admin.ModelAdmin): 

    list_display = ('my_own_method') 

    def my_own_method(self, obj): 
     if [condition]:  
      return True 
     else: 
      return False 
    my_own_method.boolean = True 

có thể được tìm thấy trong các documentation trên list_display:

Nếu chuỗi nhất định là một phương pháp mô hình, ModelAdmin hoặc một thể gọi trả về true hoặc sai Django sẽ hiển thị một biểu tượng "on" hoặc "off" đẹp nếu bạn đưa ra phương thức một thuộc tính boolean có giá trị là True.

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