基于另一个布尔列使用 Django-Tables2 格式化列
Format Column with Django-Tables2 based on another boolean column
我有一个 table,其中有几列,其中一列称为 commune
,是字符串类型,另一列是 confiance_commune
,它是一个布尔值。
如果 confiance_commune
为真,我希望 commune
呈现为粗体和绿色。
这是我的代码:
models.py
class Mrae(models.Model):
titre = models.TextField(blank=True, null=True)
lien = models.TextField(blank=True, null=True)
description = models.TextField(blank=True, null=True)
type_projet = models.TextField(blank=True, null=True)
pv_mentionne = models.BooleanField(blank=True, null=True)
commune = models.TextField(blank=True, null=True)
commune_m = models.TextField(blank=True, null=True)
departement = models.IntegerField(blank=True, null=True)
date = models.DateField(blank=True, null=True)
confiance_commune = models.BooleanField(blank=True, null=True)
index = models.AutoField(primary_key=True)
class Meta:
managed = False
db_table = 'mrae'
tables.py
from django_tables2 import tables
from django_tables2.columns import URLColumn
from .models import Mrae
class MraeTable(tables.Table):
lien = URLColumn("Lien")
class Meta:
model = Mrae
attrs = {"class": "table table-responsive"}
fields = ['titre', 'lien', 'pv_mentionne', 'date', 'commune', 'departement']
tamplate_name = "django_tables2/bootstrap-responsive.html"
您可以使用调用记录的自定义呈现函数,然后只需创建一个简单的 if 语句来检查 confiance_commune
属性以设置 commune
数据的样式。
https://django-tables2.readthedocs.io/en/latest/pages/custom-data.html#table-render-foo-methods
class MraeTable(tables.Table):
lien = URLColumn("Lien")
class Meta:
model = Mrae
attrs = {"class": "table table-responsive"}
fields = ['titre', 'lien', 'pv_mentionne', 'date', 'commune', 'departement']
template_name = "django_tables2/bootstrap-responsive.html"
def render_commune(self, record):
if record.confiance_commune:
return format_html(
"<span style='color:green;font-weight:bold;'>{}</span>",
mark_safe(record.commune)
)
return mark_safe(record.commune)
我有一个 table,其中有几列,其中一列称为 commune
,是字符串类型,另一列是 confiance_commune
,它是一个布尔值。
如果 confiance_commune
为真,我希望 commune
呈现为粗体和绿色。
这是我的代码:
models.py
class Mrae(models.Model):
titre = models.TextField(blank=True, null=True)
lien = models.TextField(blank=True, null=True)
description = models.TextField(blank=True, null=True)
type_projet = models.TextField(blank=True, null=True)
pv_mentionne = models.BooleanField(blank=True, null=True)
commune = models.TextField(blank=True, null=True)
commune_m = models.TextField(blank=True, null=True)
departement = models.IntegerField(blank=True, null=True)
date = models.DateField(blank=True, null=True)
confiance_commune = models.BooleanField(blank=True, null=True)
index = models.AutoField(primary_key=True)
class Meta:
managed = False
db_table = 'mrae'
tables.py
from django_tables2 import tables
from django_tables2.columns import URLColumn
from .models import Mrae
class MraeTable(tables.Table):
lien = URLColumn("Lien")
class Meta:
model = Mrae
attrs = {"class": "table table-responsive"}
fields = ['titre', 'lien', 'pv_mentionne', 'date', 'commune', 'departement']
tamplate_name = "django_tables2/bootstrap-responsive.html"
您可以使用调用记录的自定义呈现函数,然后只需创建一个简单的 if 语句来检查 confiance_commune
属性以设置 commune
数据的样式。
https://django-tables2.readthedocs.io/en/latest/pages/custom-data.html#table-render-foo-methods
class MraeTable(tables.Table):
lien = URLColumn("Lien")
class Meta:
model = Mrae
attrs = {"class": "table table-responsive"}
fields = ['titre', 'lien', 'pv_mentionne', 'date', 'commune', 'departement']
template_name = "django_tables2/bootstrap-responsive.html"
def render_commune(self, record):
if record.confiance_commune:
return format_html(
"<span style='color:green;font-weight:bold;'>{}</span>",
mark_safe(record.commune)
)
return mark_safe(record.commune)