在admin中显示模型URL

Oli*_*Oli 8 django django-admin

我有几个型号.除了管理员条目之外,没有任何列表视图.出于这个原因,手动计算模型实例的URL有点麻烦.

我想在列表和详细信息管理员视图中显示一个链接,直接将我带到公共视图.我可以做无意义的工作创建URL,但我不知道如何让它在管理员中显示.

有任何想法吗?

Dan*_*man 13

如果模型有get_absolute_url()方法,则应在管理详细信息屏幕的右上角自动显示"现场查看"按钮.

对于列表视图,您可以轻松地将方法添加到显示的字段列表中:

class MyAdmin(admin.ModelAdmin):
    list_display=('name', 'anotherfield', 'show_url')

    def show_url(self, instance):
        return '<a href="%s">View on site</a>' % (instance.get_absolute_url())
    show_url.allow_tags = True
Run Code Online (Sandbox Code Playgroud)


Val*_*sik 1

show_url.allow_tags = True不适合我。我不得不使用mark_safe

from django.urls import reverse
from django.utils.safestring import mark_safe

class MyAdmin(admin.ModelAdmin):
    list_display=('name', 'detail_url')

    def detail_url(self, instance):
        url = reverse('url_name')    
        return mark_safe(f'<a href="{url} target="_blank" rel="nofollow"">Follow</a>')
Run Code Online (Sandbox Code Playgroud)