Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >表2编辑所有BooleanColumn的yesno参数

表2编辑所有BooleanColumn的yesno参数
EN

Stack Overflow用户
提问于 2014-11-15 02:56:29
回答 2查看 1.7K关注 0票数 3

我有一个table.py,在这里我想要更改每个BooleanColumn的真值和假值的图标。我知道BooleanColumn的yesno参数可以修改它,但我不知道如何覆盖所有BooleanColumns的缺省值。这是tables.py的代码(aacsb、amba、equis、mba、bsc、msc和doubedegree is BooleanFields):

代码语言:javascript
运行
AI代码解释
复制
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',
                  )
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-15 04:28:18

1)因此,您可以简单地重写默认值为“yesno”的str(它只是str):

代码语言:javascript
运行
AI代码解释
复制
some_name = BooleanColumn(yesno='1,2')

或删除文本:

代码语言:javascript
运行
AI代码解释
复制
some_name = BooleanColumn(yesno=',')

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

代码语言:javascript
运行
AI代码解释
复制
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 !):

代码语言:javascript
运行
AI代码解释
复制
some_name = BooleanColumn(attrs={'span': {'style': 'color:blue'}})

4)如果出于某些原因需要更改默认类设置行为(truefalse),则应重写BooleanColumn及其方法render

代码语言:javascript
运行
AI代码解释
复制
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)))

并覆盖您的字段

代码语言:javascript
运行
AI代码解释
复制
some_name = CustomBooleanColumn(yesno=',')
票数 5
EN

Stack Overflow用户

发布于 2014-11-16 02:40:57

这是完整的代码,感谢马佐汉的回答。注意,我使用了django-bootstrap3,这样我就可以使用引导图标:

代码语言:javascript
运行
AI代码解释
复制
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',
                  )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26945064

复制
相关文章
git命令中带有特殊符号如@
使用带用户密码clone的方式: git clone https://username:password@remote 当username和password中含有特殊符号会导致出错, 因为为http的请求,所以需要将特殊符号encode成url格式的 java使用: String c = java.net.URLEncoder.encode(".","utf-8"); System.out.println(c); 源文档 <http://blog.csdn.net/qq1142003960/article/
千往
2018/01/24
2.1K0
攻击本地主机漏洞(中)
Windows无人参与安装在初始安装期间使用应答文件进行处理。您可以使用应答文件在安装过程中自动执行任务,例如配置桌面背景、设置本地审核、配置驱动器分区或设置本地管理员账户密码。应答文件是使用Windows系统映像管理器创建的,它是Windows评估和部署工具包(ADK:Assessment and Deployment Kit)的一部分,可以从以下站点免费下载https://www.microsoft.com.映像管理器将允许您保存unattended.xml文件,并允许您使用新的应答文件重新打包安装映像(用于安装Windows)。在渗透式测试期间,您可能会在网络文件共享或本地管理员工作站上遇到应答文件,这些文件可能有助于进一步利用环境。如果攻击者遇到这些文件,以及对生成映像的主机的本地管理员访问权限,则攻击者可以更新应答文件以在系统上创建新的本地账户或服务,并重新打包安装文件,以便将来使用映像时,新系统可以受到远程攻击。
顾翔
2022/09/23
1.4K0
攻击本地主机漏洞(中)
如何在 Linux 中创建带有特殊字符的文件?
在 Linux 系统中,创建文件是进行各种操作的基础。有时候,我们需要创建带有特殊字符的文件,例如包含空格、特殊符号或非ASCII字符的文件。本文将详细介绍在 Linux 中如何创建带有特殊字符的文件,以便您能够轻松地完成这样的任务。
网络技术联盟站
2023/08/03
9960
如何在 Linux 中创建带有特殊字符的文件?
如何在 Linux 中创建带有特殊字符的文件?
在 Linux 系统中,创建文件是进行各种操作的基础。有时候,我们需要创建带有特殊字符的文件,例如包含空格、特殊符号或非ASCII字符的文件。本文将详细介绍在 Linux 中如何创建带有特殊字符的文件,以便您能够轻松地完成这样的任务。
网络技术联盟站
2023/07/14
9310
如何在 Linux 中创建带有特殊字符的文件?
如何在网络中追踪入侵者(三):主机追踪
在之前的文章中,我们专注于追踪和分析从网络中得到的数据。但事实上,在网络中追踪不是唯一的选项。在企业的主机和服务器上有大量的数据集来发掘未知的恶意行为,包括运行的进程,活动的网络连接,监听端口,文件系统遗留,用户日志,自动运行等等。 而这些数据,难点只在于决定关注哪些点来开始你的追踪进程。一旦你决定关注的领域,你可以收集数据,查找可疑的异常,然后做进一步调查。 在这个系列的最后一部分,我们将会描述利用免费工具在主机上进行追踪的一些要点。这些技术首先会帮你发现主机上恶意行为的一些线索——不管你有没有签名或者I
FB客服
2018/02/08
1.2K0
如何在网络中追踪入侵者(三):主机追踪
Web浏览器中的JavaScript
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
7050
如何在 Linux 中设置主机名
设置主机名,设置主机名成功后,不要忘记也要在 hosts 文件中配置下 127.0.0.1.
HoneyMoose
2020/05/19
3.7K0
如何在 Linux 中设置主机名
如何在 Linux 中更改主机名?
在 Linux 系统中,主机名是用于标识和区分网络上的不同计算机的名称。默认情况下,Linux 发行版会分配一个主机名给您的计算机,但是有时候您可能需要根据自己的需求更改主机名。在本文中,我们将详细介绍如何在 Linux 中更改主机名,以及更改主机名后可能涉及到的其他配置。
网络技术联盟站
2023/06/09
9K0
如何在 Linux 中更改主机名?
如何在主机上调试容器、在容器中操作主机
老板有个奇怪的需求,通过一个 kubeconfig 文件,获取主机的各种状态信息,比如进程列表、进程状态等。
陈少文
2021/01/13
2.5K1
如何在主机上调试容器、在容器中操作主机
如何在浏览器中快速将网络资源传至 COS ?
COSBrowser Uploader 是一款浏览器的扩展程序,目前只支持 Chrome 浏览器。
wonders
2021/03/25
2.9K1
如何在浏览器中快速将网络资源传至 COS ?
如何在小程序中调用本地接口
如何在小程序中调用本地接口 背景: 随着微信小程序开始公测,我司也拿到了AppID,所以开始了微信小程序的趟坑之旅。 由于现在网上已经有很多的《微信小程序从精通到入门》的教程了,所以就不再重复那些,只是讲一下,在开发的过程中,如何使用本地(开发环境)的接口。 因为小程序的开发文档中写到了,wx.request 中的URL只能是一个https请求,本地一般来讲是不会有https的-.- 所以我们使用Charles代理来实现需求。 前提: 本人认为你现在已经具备以下几个条件: 具有微
贾顺名
2018/04/12
2.9K0
如何在小程序中调用本地接口
[教程]在带有vnc的kvm主机上重装windows原版系统
配置随意,系统需要为Windows,如果为linux请先DD为windows再进行继续操作
繁花云
2018/07/31
2.6K0
[教程]在带有vnc的kvm主机上重装windows原版系统
阶段六:浏览器中的网络
HTTP/1.0 关键词:多种类型文件、请求头和响应头、状态码、Cache 机制、用户代理
六个周
2022/10/28
3460
如何在Ubuntu 18.04上安装带有LEMP的WordPress
WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您使用PHP处理在MySQL后端之上轻松设置博客和网站。WordPress已经看到了令人难以置信的运用,是一个快速启动和运行网站的绝佳选择。设置完成后,几乎所有管理都可以通过Web前端完成。
所有的酒都不如你
2018/10/10
1.2K0
如何在Ubuntu 18.04上安装带有LAMP的WordPress
WordPress是互联网上最受欢迎的CMS(内容管理系统)。它允许您使用PHP在MySQL后端上设置博客和网站。WordPress已经被大量采用,是一个快速启动和运行网站的绝佳选择。设置完成后,几乎所有管理都可以通过Web前端完成。
无敌小笼包
2018/07/26
2.6K0
如何在Ubuntu 18.04上安装带有LAMP的WordPress
如何在Chrome浏览器中运行Selenium?
测试系统是一项艰巨的任务,您需要一个可以在此过程中为您提供帮助的工具。Selenium就是这样一种工具,主要用于网站测试。在本文中,我将告诉您如何在Chrome浏览器中运行Selenium。
用户8460142
2023/07/07
6640
如何在Chrome浏览器中运行Selenium?
攻击本地主机漏洞(上)
翻译“CompTIA PenTest Certification All-in-One Exam Guide Exam2019.pdf” 第十章
顾翔
2022/09/23
1.2K0
攻击本地主机漏洞(上)
如何在CentOS 7上安装带有Caddy的WordPress
WordPress是受欢迎的内容管理系统(CMS)。 它可以用于快速,轻松地设置博客和网站,几乎所有的管理都可以通过Web界面进行。
子润先生
2021/06/15
1.9K0
点击加载更多

相似问题

通过sphinx搜索散列标签

10

如何在散列的散列中搜索某些键?

10

Twitter:散列标签搜索查询

34

散列标签、查询字符串和Ajaxified搜索结果

12

如何通过散列值在散列内的散列数组中进行搜索?

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档