django admin 后台比如添加http超链接,直接点击访问

发布时间 2023-03-22 21:13:59作者: super_ip

如果后台添加了超链接,如默认带http或者https点击访问的时候可以直接打开,如不带,这默认则会自动加上默认的系统域名,导致打不开。

如录入:www.baidu.com,点击打开的时候则会打开的是:127.0.0.1/admin/XX/www.baidu.com

可使用自定义标签判断,具体如下:

1 def show_firm_url(self, obj):
2         if obj.url[0:7] == "http://" or obj.url[0:8] == "https://":
3             return format_html("<a target = '_blank' href='{url}'>{url}</a>", url=obj.url)
4         return format_html("<a target = '_blank' href='http://{url}'>{url}</a>", url=obj.url)
5     show_firm_url.short_description = "发布网址"

根据是否带前缀,通过截取来判断返回的语句执行。