【问题标题】:Displaying link in admin using model admin使用模型管理员在管理员中显示链接
【发布时间】:2019-05-14 17:14:26
【问题描述】:
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。在我的对象的管理部分,我想显示一个链接,该链接应充当锚点,它应重定向到下一个选项卡中的特定链接。

但是当我运行这段代码时,我可以看到 uri。

我想在我的 pdf 中将该部分作为一个锚点,重定向并在另一个选项卡中打开

这可能吗?

【问题讨论】:

    标签: django django-admin django-admin-filters django-admin-actions


    【解决方案1】:

    您注释掉的代码几乎是正确的。您需要返回 html(例如 &lt;a href='{}'&gt;pdf&lt;/a&gt;),但您需要将输出标记为安全,以免在模板中转义。

    您可以为此使用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]
    

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 2014-09-08
      • 1970-01-01
      • 2014-12-01
      • 2019-09-22
      • 1970-01-01
      • 2021-09-14
      • 2010-10-06
      • 2017-10-22
      相关资源
      最近更新 更多