2012-11-08 12 views
5

Sto usando django-tables2 per creare il mio tavolo per me. Devo applicare un tag modello a ciascuna cella() in una delle colonne. Sembra un sacco di ulteriore sforzo per passare e creare un layout di tabella personalizzato solo per applicare il tag del modello a una colonna. C'è un modo per farlo in django-tables2?È possibile applicare un tag modello ad un <td> quando si usano django-tables2?

Aggiornamento:

Forse non ho spiegato quello che sto cercando abbastanza bene. Non credo che funzionerà.

Il mio codice:

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

voglio ciascuno in pass_rate_pct utilizzare il tag template {{pass_rate_color}} nella classe() dove pass_rate_color poi emette un particolare stile in base al quale l'uscita di pass_rate_pct è.

risposta

1

django_tables2 permette di specificare un modello personalizzato alternativa per l'output le tabelle. Prendi una copia di django_tables2/templates/django_tables2/table.html e rinominala, ad es. table_pass_rate.html e inserisci il tuo tag sulla linea 29:

{% pass_rate_color cell %} 

Ora, quando si genera l'uso tavolo:

{% render_table table "table_pass_rate.html" %} 

vedere il codice django_tables2 per tags e la template per maggiori informazioni.

+0

Questo è il modo in cui sono andato su di esso, tuttavia ho dovuto fare un'istruzione if lì, in modo che facesse solo pass_rate_color su una certa colonna, comunque funzionava. Grazie. – cjohnston

0

Provare a sovrascrivere il metodo Table.render_FOO, dove foo è il nome della colonna, Supponendo di aver scritto un tag modello personalizzato che assuma il valore della colonna come argomento. per esempio:

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

Ho modificato la mia domanda sopra. – cjohnston

+0

sulla scrittura di tag modello personalizzati vedere https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ –

+0

Il templatetag esiste già. Sto cercando di capire come passarlo attraverso tables.py .. Attualmente si presenta nell'origine come testo normale invece del templatetag che viene effettivamente eseguito. – cjohnston

Problemi correlati