django admin 添加自定义链接方式


Posted in Python onMarch 11, 2020

背景

最近做项目开发出现一个需求,就是前端会发来用户对某一项内容的报错,报错信息中包含出错内容的id,为了方便管理,需要实现点击这个id直接转达相应内容的详情页面。

效果展示

解决

首先在django admin的列表中查看数据id所代表的链接

django admin 添加自定义链接方式

使用浏览器的检查元素功能查看点击该id所跳转的链接

django admin 添加自定义链接方式

现在我们知道点击admin页面跳转链接的格式了。

自定义widget

假如我们的内容id使用CharField字段存储,那么可以这样自定义一个widget

HTML

{% load myfileter %}
<a href="{{ widget.value|generate_link }}" rel="external nofollow" >{{ widget.value }}</a>

{%load myfilter%}是引入自定义模板标签的语句,该标签在下面定义。

python

class MyWidget(TextInput):
  template_name = "myWidget.html"
  def render(self, name, value, attrs=None, renderer=None):
    context = self.get_context(name, value, attrs)
    template = loader.get_template(self.template_name).render(context)
    return mark_safe(template)

自定义模板过滤器

在views.py所在的目录下新建一个文件夹templatetags,注意必须为这个名字。在文件夹中新建一个myfileter.py文件和_init_.py文件。

myfileter.py

# 生成自定义链接
@register.filter
def generate_link(value):
  id = str(value)
  #就是将第二张图片中的id替换为当前的id就行
  return "/admin/learningsource/learningsource/" + id + "/change/"

自定义模型表单

假如我们的模型定义如下

class FeedbackModel(models.Model):
  error_content_id=models.UUIDField("错误编号", primary_key=True, default=uuid.uuid4())
  ........

在models.py中定义一个ModelForm

class FeedbackModelForm(ModelForm):
  error_content_id = forms.CharField(label="错误编号",widget=MyWidget)

  class Meta:
    model = SourceLinkErrorReport
    fields = ['error_content_id',.....]

假如该模型在admin.py的模型管理器为

class FeedbackModelAdmin(admin.ModelAdmin):
..........

将上述定义的模型表单添加到模型管理器中

class FeedbackModelAdmin(admin.ModelAdmin):
form=FeedbackModelForm
..........

总结

使用这种方法可以不用创建一个空的模型然后重写它的changelist_view函数实现自定义链接,可以给admin界面的文字,图片等添加链接(通过自定义widget就可实现),并且链接样式可以自己定义,使用更方便。

在安全性上,本文的做法实际上相当于自己手动给django admin内置视图函数发送请求,和原来django自己自动生成的页面链接没有任何区别,对自定义链接的响应实际上也要经过**django ** admin的认证,安全性是没问题的。

以上这篇django admin 添加自定义链接方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
Python实现带百分比的进度条
Jun 28 Python
windows下python连接oracle数据库
Jun 07 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
pandas 小数位数 精度的处理方法
Jun 09 Python
pandas 将list切分后存入DataFrame中的实例
Jul 03 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
python爬取网易云音乐评论
Nov 16 Python
python f-string式格式化听语音流程讲解
Jun 18 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
django xadmin 管理器常用显示设置方式
Mar 11 #Python
django从后台返回html代码的实例
Mar 11 #Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
Mar 11 #Python
python3 实现口罩抽签的功能
Mar 11 #Python
python+selenium 脚本实现每天自动登记的思路详解
Mar 11 #Python
Django+boostrap 美化admin后台的操作
Mar 11 #Python
Windows 下python3.8环境安装教程图文详解
Mar 11 #Python
You might like
php的urlencode()URL编码函数浅析
2011/08/09 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
PHP实现全角字符转为半角方法汇总
2015/07/09 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
2017/07/09 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
使用JavaScript switch case 另类写法
2010/03/14 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
js实现透明度渐变效果的方法
2015/04/10 Javascript
javascript关于运动的各种问题经典总结
2015/04/27 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
分类解析jQuery选择器
2016/11/23 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
JavaScript折半查找(二分查找)算法原理与实现方法示例
2018/08/06 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
Django中的forms组件实例详解
2018/11/08 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
Python 多进程原理及实现
2020/12/21 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
建筑文秘专业个人求职信范文
2013/12/28 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
食品安全责任书范本
2015/05/09 职场文书