2012-11-08 18 views
5

मैं अपने लिए टेबल बनाने के लिए django-table2 का उपयोग कर रहा हूं। मुझे कॉलम में से प्रत्येक में सेल्स() में एक टेम्पलेट टैग लागू करने की आवश्यकता है। ऐसा लगता है कि एक कॉलम पर टेम्पलेट टैग को लागू करने के लिए बस एक अतिरिक्त टेबल लेआउट बनाने और कस्टम टेबल लेआउट बनाने के लिए अतिरिक्त प्रयास की तरह लगता है। क्या django-tables2 में ऐसा करने का कोई तरीका है?क्या django-tables2 का उपयोग करते समय <td> पर एक टेम्पलेट टैग लागू करना संभव है?

अद्यतन:

मैं समझा दिया है नहीं हो सकता है मैं काफी अच्छी तरह से करने के लिए क्या देख रहा हूँ। मुझे विश्वास नहीं है कि काम करेगा।

मेरे कोड:

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

मैं कक्षा() जहां pass_rate_color तो क्या pass_rate_pct का उत्पादन होता है पर आधारित एक विशेष शैली आउटपुट में टेम्पलेट टैग {{pass_rate_color}} का उपयोग करने के pass_rate_pct में प्रत्येक चाहते हैं।

उत्तर

1

django_tables2 आप अपनी टेबल outputting के लिए एक विकल्प के कस्टम टेम्पलेट निर्दिष्ट करने के लिए के लिए अनुमति देता है। django_tables2/templates/django_tables2/table.html की एक प्रति लें और इसका नाम बदलें उदा। table_pass_rate.html और लाइन 29 पर अपने टैग दर्ज करें:

{% pass_rate_color cell %} 

अब तालिका उपयोग पैदा होता है:

{% render_table table "table_pass_rate.html" %} 

tags के लिए django_tables2 कोड और अधिक जानकारी के लिए template देखें।

+0

इस तरह मैं इसके बारे में गया, हालांकि मुझे वहां एक कथन देना था ताकि यह केवल एक निश्चित कॉलम पर pass_rate_color किया गया हो, हालांकि यह काम करता था। धन्यवाद। – cjohnston

0

तालिका.रेंडर_एफओओ विधि को ओवरराइड करने का प्रयास करें, जहां foo कॉलम नाम है, मान लें कि आपने एक कस्टम टेम्पलेट टैग लिखा है जो स्तंभ मान को तर्क के रूप में लेता है। उदाहरण के लिए :

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

मैंने ऊपर अपना प्रश्न संपादित किया। कस्टम टेम्पलेट टैग लिखने पर – cjohnston

+0

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/ –

+0

टेम्पलेटैटैग पहले से मौजूद है। मैं यह समझने की कोशिश कर रहा हूं कि इसे table.py के माध्यम से कैसे पास किया जाए .. वर्तमान में यह स्रोत में दिखाई देने वाले टेम्पलेटेटाग के बजाय सादे पाठ के रूप में दिखाई देता है। – cjohnston