【问题标题】:Django and format_html, getting duplicate text formatted and unformattedDjango和format_html,获取格式化和未格式化的重复文本
【发布时间】:2020-08-05 18:56:53
【问题描述】:

我将 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']

【问题讨论】:

  • 您能分享一下您添加过滤器的 ModelAdmin 吗?
  • 感谢 Iain,我已经更新了帖子。

标签: python-3.x django django-admin


【解决方案1】:

好的,通过反复试验,我发现删除 html 颜色声明中的引号可以正常工作。

之前

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

已更新,感谢 Iain。

删除引号并将&lt;font&gt; 替换为&lt;span&gt; 标签后(支持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>')),
)

有效

【讨论】:

  • 我认为font 标签在 HTML5 中无效,某些浏览器可能支持它们以实现向后兼容性,也许尝试使用 span 标签代替?
猜你喜欢
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多