gpt4 book ai didi

python - django-tables2 为所有 BooleanColumn 编辑 yesno 参数

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:54 25 4
gpt4 key购买 nike

我有一个 table.py,我想在其中更改每个 BooleanColumn 的 True 和 False 值的图标。我知道它可以通过 BooleanColumn 的 yesno 参数修改,但我不知道如何覆盖所有 BooleanColumns 的默认值。这是 tables.py 的代码(aacsb、amba、equis、mba、bsc、msc 和 doubedegree 是 BooleanFields):

from django_tables2 import Column, Table
from manager.models import Partner


class PartnerTable(Table):

country_name = Column(accessor='country.name', verbose_name='Country')
region_name = Column(accessor='country.region.name', verbose_name='Region')

class Meta:
model = Partner
fields = ('name',
'country_name',
'region_name',
'website',
'aacsb',
'amba',
'equis',
'mba',
'bsc',
'msc',
'doubledegree',
)

最佳答案

1) 所以你可以简单地覆盖默认值为“✔,✘”的yesno(它只是str):

some_name = BooleanColumn(yesno='1,2')

或删除文本:

some_name = BooleanColumn(yesno=',')

2) 使用 css 您可以指定自定义图像(不要忘记设置 yesno=','):

span.true {
background: url(../img/true.gif) top center no-repeat;
}

span.false {
background: url(../img/false.gif) top center no-repeat;
}

3) 为 span 指定一些额外的属性(但不要指定 class !):

some_name = BooleanColumn(attrs={'span': {'style': 'color:blue'}})

4) 如果由于某些原因你想更改默认类设置行为(truefalse)——你应该重写 BooleanColumn 及其方法渲染

from django.utils.html import escape
from django.utils.safestring import mark_safe
from django_tables2.utils import AttributeDict


class CustomBooleanColumn(BooleanColumn):
def render(self, value):
value = bool(value)
text = self.yesno[int(not value)]
html = '<span %s>%s</span>'

class_name = 'some_class_false'
if value:
class_name = 'some_class_true'
attrs = {'class': 'class_name'}

attrs.update(self.attrs.get('span', {}))

return mark_safe(html % (AttributeDict(attrs).as_html(), escape(text)))

并覆盖你的领域

some_name = CustomBooleanColumn(yesno=',')

关于python - django-tables2 为所有 BooleanColumn 编辑 yesno 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26945064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com