Django admin list_display 在鼠标悬停时显示全文

Posted

技术标签:

【中文标题】Django admin list_display 在鼠标悬停时显示全文【英文标题】:Django admin list_display show full text on mouse hover 【发布时间】:2020-09-26 05:25:04 【问题描述】:

有一个名为 address 的 TextField。 它通常包含 100 多个字符。 我可以截断字符串,但我希望发生以下情况: 将鼠标悬停在截断部分上时,应显示全文。

【问题讨论】:

【参考方案1】:

如果您不需要编辑list_display 中的地址,那么您可以创建一个只读字段并使用它:

from django.utils.html import format_html

class MyAdmin(admin.ModelAdmin):
    class Media:
         css = 
             'all': ("styles.css",)
         

    list_display=(
        ...other fields,
        list_display_address,
    )

    def list_display_address(self, instance):
        return format_html(
            '<span class="truncated_address" title=""></span>', 
            instance.address,
            instance.address
        )

只读字段的工作方式是返回 modelAdmin 上的方法的值。 title 属性设置鼠标悬停在文本上。 通过将以下内容添加到我们的styles.css,如果地址太长,我们可以截断地址。 (我假设它在一行上):
.truncated_address
  text-overflow: ellipsis;

【讨论】:

以上是关于Django admin list_display 在鼠标悬停时显示全文的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django admin 中本地化 list_display 字段?

Django admin list_display 在鼠标悬停时显示全文

如何忽略在 django admin list_display 中加载巨大的字段?

Django admin:从反向 FK 聚合中排序 list_display 字段

Django Admin list_display 添加列[统计相关ForeignKey的记录]

从 django admin list_display 访问,来自一对一表的值