Отображение ссылки в админке с использованием модели админ

class DirectAdmin(admin.ModelAdmin):
    def order_pdf(obj):
        # return "<a href='{}'>pdf</a>".format(
        url=reverse('orders:admin_order_pdf', args=[obj.id])
        return "http://localhost:8000" + url
    order_pdf.allow_tags = True
    order_pdf.short_description = 'PDF bill'
    list_display=['id','name','price','phone_number',order_pdf]
admin.site.register(Product)
admin.site.register(Category)
admin.site.register(Direct,DirectAdmin)

Это мой admin.py. Здесь, в разделе admin моих объектов, я хочу отобразить ссылку, где ссылка должна действовать как якорь, где она должна перенаправлять на эту конкретную ссылку на следующей вкладке.

Но когда я запускаю этот код, я вижу URI.

Я хочу сделать этот раздел в моем PDF как якорь, который перенаправляет и открывает в другой вкладке

Это возможно?

1 ответ

Ваш закомментированный код является почти правильным. Вы должны вернуть HTML (например, <a href='{}'>pdf</a>), но вы должны пометить вывод как безопасный, чтобы он не экранировался в шаблоне.

Ты можешь использовать format_html за это.

class DirectAdmin(admin.ModelAdmin):
    def order_pdf(obj):
        url=reverse('orders:admin_order_pdf', args=[obj.id])
        return format_html("<a href='{}'>{}</a>", url, "pdf")
    order_pdf.allow_tags = True
    order_pdf.short_description = 'PDF bill'
    list_display=['id','name','price','phone_number',order_pdf]
Другие вопросы по тегам