场景假设
假设有一个爬虫程序,它的主要作用是爬取一些新闻标题和该新闻的访问链接,总的来说数据项就两个:
- 新闻标题
- 访问链接(URL)
作为开发者我希望在Django admin页面中展示“访问链接”的字段能够直接点击访问,而不是复制下来再粘贴到浏览器中访问。
鉴于此,我需要给“访问链接”这个字段设置一个外链,能够让我点击直接访问。
问题分析
Django admin所有对model的管理都在admin.py文件中,因此基本思路是在admin.py中配置“访问链接”字段的信息,使得它成为一个可点击的<a>
标签内容,借此实现点击访问的效果。
但需要注意的是,直接拼接<a>
标签字符串会被Django当做普通字符串处理,并不会进行HTML解析。
解决办法
Django提供format_html
函数,该函数可以安全地渲染HTML内容,示例代码如下:
# admin.py
from django.contrib import admin
from .models import Link
from django.utils.html import format_html
@admin.registger(Link)
class LinkAdmin(admin.ModelAdmin):
def click_url(self, obj):
return format_html('<a href="{}" target="_blank">{}</a>', obj.link, obj.link)
click_url.short_description = '访问链接'
# ...
list_display = ('title', 'click_url', 'updated')
# ...
上面click_url.short_description = '访问链接'
部分主要用于设置列名。文章来源:https://www.toymoban.com/news/detail-521934.html
函数click_url(self, obj)
和list_display
中的click_url
对应。文章来源地址https://www.toymoban.com/news/detail-521934.html
到了这里,关于Django admin中展示字段设置外链的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!