<p>这里是完整的代码,感谢madzohan的回答。请注意,我使用了django-bootstrap3以便可以使用引导图标:</p>
<pre><code>from django_tables2 import BooleanColumn, Column, Table
from django.utils.safestring import mark_safe
from django_tables2.utils import AttributeDict
from manager.models import Partner
class BootstrapBooleanColumn(BooleanColumn):
def __init__(self, null=False, **kwargs):
if null:
kwargs["empty_values"] = ()
super(BooleanColumn, self).__init__(**kwargs)
def render(self, value):
value = bool(value)
html = "<span %s></span>"
class_name = "glyphicon glyphicon-remove"
if value:
class_name = "glyphicon glyphicon-ok"
attrs = {'class': class_name}
attrs.update(self.attrs.get('span', {}))
return mark_safe(html % (AttributeDict(attrs).as_html()))
class PartnerTable(Table):
country_name = Column(accessor='country.name', verbose_name='Country')
region_name = Column(accessor='country.region.name', verbose_name='Region')
aacsb = BootstrapBooleanColumn()
amba = BootstrapBooleanColumn()
equis = BootstrapBooleanColumn()
mba = BootstrapBooleanColumn()
bsc = BootstrapBooleanColumn()
msc = BootstrapBooleanColumn()
doubledegree = BootstrapBooleanColumn()
class Meta:
model = Partner
fields = ('name',
'country_name',
'region_name',
'website',
'aacsb',
'amba',
'equis',
'mba',
'bsc',
'msc',
'doubledegree',
)
</code></pre>