2012-11-08 35 views
5

Tôi đang sử dụng django-table2 để tạo bảng cho tôi. Tôi cần phải áp dụng một thẻ mẫu cho mỗi ô() trong một trong các cột. Có vẻ như rất nhiều nỗ lực để trải qua và tạo bố cục bảng tùy chỉnh chỉ để áp dụng thẻ mẫu cho một cột. Có cách nào để làm điều này trong django-bảng2?Có thể áp dụng thẻ mẫu cho <td> khi sử dụng django-tables2 không?

Cập nhật:

Tôi có thể không giải thích những gì tôi đang tìm kiếm đủ tốt. Tôi không tin điều đó sẽ hiệu quả.

Mã của tôi:

class CombineTable(tables.Table): 
    build_no = tables.LinkColumn('run', args=[A('release'), A('id')], verbose_name="Build") 
    flavor = tables.Column(verbose_name="Flavor") 
    pass_rate_pct = tables.Column(verbose_name="Image Pass Rate") 

Tôi muốn mỗi trong pass_rate_pct sử dụng mẫu thẻ {{pass_rate_color}} trong lớp(), nơi pass_rate_color sau đó kết quả đầu ra một phong cách đặc biệt dựa trên những gì đầu ra của pass_rate_pct là.

Trả lời

1

django_tables2 cho phép bạn chỉ định mẫu tùy chỉnh thay thế để xuất bảng của bạn. Lấy một bản sao của django_tables2/templates/django_tables2/table.html và đổi tên nó, ví dụ: table_pass_rate.html và nhập từ khóa của bạn trên dòng 29:

{% pass_rate_color cell %} 

Bây giờ khi tạo việc sử dụng bảng:

{% render_table table "table_pass_rate.html" %} 

Xem mã django_tables2 cho tagstemplate để biết thêm.

+0

Đây là cách tôi đã đi về nó, tuy nhiên tôi đã phải làm một tuyên bố nếu trong đó để nó chỉ pass_rate_color trên một cột nhất định, tuy nhiên nó đã làm việc. Cảm ơn. – cjohnston

0

Hãy thử ghi đè phương thức Table.render_FOO, trong đó foo là tên cột, Giả sử bạn đã viết thẻ mẫu tùy chỉnh lấy giá trị cột làm đối số. ví dụ:

import django_tables2 as tables 

class SimpleTable(tables.Table): 
    custom_row = tables.Column() 
    id = tables.Column() 
    age = tables.Column() 

    def render_custom_row(self, value): 
     return '{% pass_rate_color %s %}' % value 
+0

Tôi đã chỉnh sửa câu hỏi của mình ở trên. – cjohnston

+0

khi viết thẻ mẫu tùy chỉnh, hãy xem https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ –

+0

Templatetag đã tồn tại. Tôi đang cố gắng tìm ra cách để vượt qua nó thông qua tables.py .. Hiện tại nó xuất hiện trong nguồn như văn bản thuần túy thay vì templatetag thực sự đang chạy. – cjohnston

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