在django管理员更改列表中显示HTML字段

时间:2015-10-06 17:28:19

标签: django django-admin

有没有办法在模型管理员的change_list模板中的字段中使用HTML?

例如:我想点击站点域列,并能够导航到该站点:

enter image description here

3 个答案:

答案 0 :(得分:7)

您可以创建一个函数cursor.execute( "SELECT order_value, order_date FROM dashboard \ WHERE order_date > %s\ ORDER BY ABS(TIMESTAMPDIFF(MINUTE, %s, order_date))\ LIMIT 1", (localtime, localtime,)) ,它根据clickable_site_domain()的值返回HTML链接。然后,您需要将此方法名称添加到site_domain属性。最后,您需要将字符串标记为安全,以避免使用ModelAdmin.list_display转义HTML。

在Django 1.9之前,您需要为此函数设置mark_safe以避免HTML转义。 (Docs)

allow_tags=True

答案 1 :(得分:1)

截至2019年,django 2.2的最新答案

from django.contrib import admin
from django.utils.html import format_html

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    list_display = [..., 'custom_field', ...]

    def custom_field(self, obj):
        return format_html('<a href={}>URL</a>', obj.url)

答案 2 :(得分:0)

应该可行in ModelAdmin

编辑:有关如何在ModelAdmin中定义选项,请参阅this section,然后在admin.py中注册时正确执行此操作,确保模板存在,例如:

from django.contrib import admin
from .models import MyModel

@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    change_list_template = 'myapp/mymodel_change_list.html'