我正在使用django admin,我想更改“estado_material”字段值的字体颜色,如果它们可用“Disponible”或不是“Enpréstamo”。我的models.py:
ScaleTransisition
和我的admin.py:
from django.db import models
class Material(models.Model):
identificacion=models.CharField(max_length=30, verbose_name='Identificación del material')
num_com=models.CharField(max_length=30, verbose_name='Número')
nombre_sp=models.CharField(max_length=30, verbose_name='Nombre científico')
coleccion=models.CharField(max_length=30, verbose_name='Colección')
descripcion=models.CharField(max_length=1000, verbose_name='Descripción')
localidad=models.CharField(max_length=30, verbose_name='Localidad')
estratigrafia=models.CharField(max_length=1000, verbose_name='Estratigrafía')
colector=models.CharField(max_length=130, verbose_name='Colector/es')
observaciones=models.CharField(max_length=1000, verbose_name='Observación')
ubicacion=models.CharField(max_length=130, verbose_name='Ubicación')
class Meta:
verbose_name = "Material"
verbose_name_plural = "Materiales"
def __str__(self):
return self.num_com
def estado_material(self):
if Prestamos.objects.filter(material__num_com=self.num_com).exists():
return "En préstamo"
else:
return "Disponible"
答案 0 :(得分:0)
estado_material
可以使用django.utils.html
中的format_html方法更改为以下内容:
from django.utils.html import format_html
...
def estado_material(self):
if Prestamos.objects.filter(material__num_com=self.num_com).exists():
result = "En préstamo"
else:
result = "Disponible"
return format_html('<span style="color: {};">{}</span>',
'green' if result == 'Disponible' else 'red',
result)
可以将Django 1.9
allow_tags
属性添加到方法中以防止自动转义 - 现在已弃用,format_html
就足够了。