Django и format_ html, получая дублирующийся текст, отформатированный и неформатированный - PullRequest
0 голосов
/ 05 августа 2020

Я использую Django 3 для простого приложения ссуды на книгу. Я пытаюсь отформатировать текст (изменить цвет) с помощью format_ html, но получаю странные результаты.

У меня следующее объявление класса:

class Prestamos(models.Model):
    estado_prestamo = models.CharField(max_length=10, verbose_name='Estado', choices=STATUS_CHOICES)


    STATUS_CHOICES = (
      ('a', format_html('<font color="green">Activo</font>')),
      ('b', "Archivado"),
      ('w', format_html('<font color="red"><b>Vencido</b></font>')),
    )

Это результат в панели фильтров, где я получаю дублированный текст, отформатированный и неформатированный.

введите описание изображения здесь

Заранее спасибо.

PD: Вот объявление ModelAdmin (спасибо Iain):

class PrestamosAdmin(admin.ModelAdmin):
    list_display = ('nombre_prestamo', 'correo_prestamo', 'fecha_alta', 'duracion', 'Material_en_préstamo', 'estado_prestamo', 'Ver_mat',)
    search_fields = ('numero_prestamo','nombre_prestamo', 'correo_prestamo', 
     'fecha_alta', 'duracion', 'material__num_com')
    list_filter = ('estado_prestamo', 'fecha_alta', 'fecha_baja')
    actions = ['archivar_prestamo','ImprimirPrestamo']

1 Ответ

0 голосов
/ 05 августа 2020

Хорошо, методом проб и ошибок я обнаружил, что удаление кавычек в объявлении цвета html заставляет его работать.

До

STATUS_CHOICES = (
      ('a', format_html('<font color="green">Activo</font>')),
      ('b', "Archivado"),
      ('w', format_html('<font color="red"><b>Vencido</b></font>')),
    )

ОБНОВЛЕНО, спасибо Iain.

После удаления кавычек и замены тегов <font> на <span> (поддержка html 5):

STATUS_CHOICES = (
    ('a', format_html('<span style=color:green>Activo</span>')),
    ('b', "Archivado"),
    ('w', format_html('<b><span style=color:red>Vencido</span></b>')),
)

Работает

введите описание изображения здесь

...