2012-11-08 12 views
5

Benim için bir tablo oluşturmak için django-tables2 kullanıyorum. Sütunlardan birindeki her bir hücreye() bir şablon etiketi uygulamam gerekiyor. Şablon etiketini tek bir sütuna uygulamak için özel tablo düzeni oluşturmak ve oluşturmak için çok fazla çaba harcamak gibi görünüyor. Bunu django-tables2'de yapmanın bir yolu var mı?django-tables2 kullanırken şablon etiketi <td>'a uygulanabilir mi?

Güncelleme: Ben yeterince iyi aradığım açıkladım olmayabilir

. Bunun işe yarayacağına inanmıyorum.

Kodum:

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") 

Ben pass_rate_color sonra pass_rate_pct çıktısı ne dayalı belirli bir stili verir sınıfı() şablon etiketini {{pass_rate_color}} kullanmaya pass_rate_pct her istiyoruz.

cevap

1

django_tables2 verir. django_tables2/templates/django_tables2/table.html kopyasını alın ve yeniden adlandırın, ör. table_pass_rate.html ve hat 29 üzerinde bir etiket girebilir:

{% pass_rate_color cell %} 

Şimdi tablo kullanımını üreten:

{% render_table table "table_pass_rate.html" %} 

tags için django_tables2 kodunu ve daha fazla bilgi için template bakınız.

+0

Ben böyle devam ettim, ancak orada bir if deyimi yapmak zorunda kaldım, böylece sadece belirli bir sütun üzerinde pass_rate_color yaptı, ancak işe yaradı. Teşekkürler. – cjohnston

0

Tablo.render_FOO yöntemini, burada sütun adının nerede olduğunu geçersiz kılmayı deneyin. Sütun değerini bağımsız değişken olarak alan bir özel şablon etiketi yazdığınızı varsayarsak. Örneğin : Eğer tabloları çıkarmaya yarayan bir alternatif özel bir şablon belirtmek için

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

Yukarıdaki sorumu düzenledim. Özel şablon etiketlerinin yazılmasıyla ilgili – cjohnston

+0

, bkz. Https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ –

+0

Şablon etiketi zaten var. Bunu, tables.py aracılığıyla nasıl ileteceğimi anlamaya çalışıyorum. Şu anda, kaynakta aslında çalıştırılan şablon etiketinin yerine düz metin olarak görünüyor. – cjohnston

İlgili konular