如何在Django管理面板中添加自定义链接/ URL字段?

时间:2020-08-12 03:47:51

标签: django django-admin

在Django admin.py中,如何在管理视图中添加自定义的链接/ URL字段 download_pdf

class CustomerAdmin(admin.ModelAdmin):
    list_display = ['first_name', 'last_name', 'full_name', 'download_pdf']

    def full_name(self, obj):
        return obj.first_name + " " + obj.last_name
    
    def download_pdf(self, obj):
        return "<a href=''>PDF</a>"  # this is not working

上面的代码不起作用, download_pdf 字段显示为文本,但未显示链接。

1 个答案:

答案 0 :(得分:1)

使用format_html(...)--(Django doc)功能

from django.utils.html import format_html


class CustomerAdmin(admin.ModelAdmin):
    list_display = ['first_name', 'last_name', 'full_name', 'download_pdf']

    def full_name(self, obj):
        return obj.first_name + " " + obj.last_name

    def download_pdf(self, obj):
        return format_html("<a href=''>PDF")

示例:

def download_pdf(self, obj):
    return format_html(f"<a href='/foo/bar/{obj.pk}/download-pdf/'>PDF</a>")
相关问题