2012-07-24 9 views
15

Làm thế nào để nói với django-table2 mà cột tôi muốn có trong bảng? Tôi biết có điều này là Column attribute 'hiển thị', có thể được đặt thành Sai. Tuy nhiên tôi có một mô hình với nhiều trường và muốn hiển thị một số trường, vì vậy hãy viết một danh sách đầy đủ tất cả các cột, chỉ để nói rằng hầu hết các cột sẽ không hiển thị, dường như không đúng cách.django-tables2 tập hợp các cột

Điều tôi đang tìm là một cách để cung cấp danh sách tên cột được hiển thị, nếu điều này là có thể thì thậm chí có thể cung cấp cho người dùng khả năng chọn cột nào mình muốn.

Giải pháp khác đến với tâm trí của tôi - làm cho thuộc tính 'nhìn thấy được' sai theo mặc định, nhưng vì nó được định nghĩa trong lớp Cột, tôi vẫn sẽ cần phải viết một danh sách đầy đủ.

Vì tôi chưa tìm thấy bất kỳ diễn đàn thảo luận django-table2 nào, tôi hỏi tại đây.

+0

Bạn có nghĩa là hiển thị/ẩn các cột động hoặc chỉ định cấu hình các trường nào sẽ hiển thị khi chạy? –

+0

Mục tiêu chính là xác định trường nào sẽ hiển thị bằng cách cung cấp tập hợp các tên cột, phần động là tùy chọn. Tôi thực sự không thấy phần năng động có thể đạt được như thế nào nếu không có mục tiêu chính của tôi. – liepumartins

+0

Bạn nên sử dụng 'Meta: fields:()' hoặc 'exclude:()' trong định nghĩa 'tables.Table' không phải là bạn? –

Trả lời

23

Ví dụ về các lĩnh vực mô hình xác định

mẫu của bạn

class Product(model.Models): 
    name = model.CharField(max_length=20) 
    price = model.DecimalField(max_digit=9, decimal_places=2) 

Bảng của bạn

class ProductTable(tables.Table): 
    actions = ProductActions(orderable=False) # custom tables.Column() 
    class Meta: 
     model = Product 
     fields = ('name', 'price', 'action') # fields to display 

Ngoài ra bạn cũng có thể sử dụng exclude

Related docs entry here

+0

Tuyệt vời, tôi cũng sử dụng 'chuỗi', vì tùy chọn 'trường' không thay đổi nó, giống như nó với ModelForm. – liepumartins

+0

Có django-bảng2 này thực sự là một ứng dụng tuyệt vời và đơn giản hóa cuộc sống rất nhiều. –

+1

Tôi đã đọc tài liệu đó mười lăm lần và không thể nhận được tài liệu đó, nhưng khi tôi theo dõi liên kết của bạn, tôi đã thấy nó. FML – Tjorriemorrie