2016-05-29 87 views
2

是否可以根据当前对象的值更改行的颜色?如何更改Django表行的颜色?

就我而言,我从模型Job创建tableJob有属性delivery。如果job.delivery是例如“交付”,我想该行的颜色变为红色。

的唯一的事在我脑海中是使用JQuery,但我不知道它是不是矫枉过正。

class MyOrdersTable(tables.Table): 
    edit_entries = tables.TemplateColumn(
      '{% if not record.translator %}<a href="/jobs/update/{{record.id}}">Edit Order</a>{% else %} Can\'t edit order, translator has been assigned. {% endif %}') 
    price = tables.Column(default='Not Yet',verbose_name='Price') 
    translator = tables.Column(default='Not Yet',verbose_name='Translator') 
    progress = tables.TemplateColumn('{{record.delivery.get_status_display}}',verbose_name='Progress') 

    class Meta: 
     model = Job 
     attrs = {'class': 'table table-striped table-bordered table-hover', 'width': '70%'} 
     fields = (
      'translator', 'short_description', 'language_from', 'language_to', 'level', 'created', 'modified', 'price', 
      'progress','edit_entries') 
     empty_text = """You haven't order a translation yet. Can we help you?""" 
+1

这篇回答你的问题? – Jieter

+0

@Jieter是的,谢谢你的回答,我已经忘了将它解决。 –

回答

2

的确是这样,因为Django的tables2 V1.2.0,你可以用row attributes

class MyOrdersTable(tables.Table): 
    # [...] 
    class Meta: 
     model = Jub 
     row_attrs = { 
      'data-delivery': lambda record: record.delivery 
     } 

这将使行是这样的:

<tr [...] data-delivery="delivered"><td>....</tr> 
<tr [...] data-delivery="peding"><td>....</tr> 

您可以使用数据归因于针对该行与一些CSS:

tr[data-delivery='deliverd'] { 
    background-color: #f2dede; 
}