对django后台admin下拉框进行过滤的实例


Posted in Python onJuly 26, 2019

使用django admin 自带后台

admin后台下拉显示的时候需要添加过滤条件,

因为表是自己关联自己,同时还需要过滤掉自己, 需要获取当前对象的id,需要获取obj_id

from django.contrib import admin
from .models import Comment

# actions添加模型动作
def disable_commentstatus(modeladmin, request, queryset):
  queryset.update(is_enable=False)

def enable_commentstatus(modeladmin, request, queryset):
  queryset.update(is_enable=True)

disable_commentstatus.short_description = '隐藏评论'
enable_commentstatus.short_description = '显示评论'

class CommentAdmin(admin.ModelAdmin):
  list_display = ('id', 'commentator', 'article', 'parent_comment', 'is_enable', 'created_time')
  list_display_links = ('id', 'commentator')
  list_filter = ('commentator', 'article', 'is_enable')
  actions = [disable_commentstatus, enable_commentstatus]

  def formfield_for_foreignkey(self, db_field, request, *args, **kwargs):
    if db_field.name == 'parent_comment':
      try:
        obj_id = request.resolver_match.args[0] #这里获取当前对象id,非常重要
        kwargs['queryset'] = Comment.objects.filter(parent_comment=None).exclude(id=int(obj_id)) # 添加过滤条件
      except:
        kwargs['queryset'] = Comment.objects.filter(parent_comment=None)
    return super(CommentAdmin, self).formfield_for_foreignkey(db_field, request, **kwargs)

admin.site.register(Comment, CommentAdmin)

以上这篇对django后台admin下拉框进行过滤的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python利用hook技术破解https的实例代码
Mar 25 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
python实现用于测试网站访问速率的方法
May 26 Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
使用Python绘制图表大全总结
Feb 11 Python
python批量导入数据进Elasticsearch的实例
May 30 Python
Python代码实现http/https代理服务器的脚本
Aug 12 Python
Python小程序 控制鼠标循环点击代码实例
Oct 08 Python
Python3安装pip工具的详细步骤
Oct 14 Python
Python内置类型性能分析过程实例
Jan 29 Python
Python闭包及装饰器运行原理解析
Jun 17 Python
python regex库实例用法总结
Jan 03 Python
python函数的万能参数传参详解
Jul 26 #Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 #Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 #Python
django admin.py 外键,反向查询的实例
Jul 26 #Python
Python企业编码生成系统之系统主要函数设计详解
Jul 26 #Python
python的re模块使用方法详解
Jul 26 #Python
Python企业编码生成系统总体系统设计概述
Jul 26 #Python
You might like
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
php实现网站留言板功能
2015/11/04 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
Smarty模板语法详解
2019/07/20 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
对javascript继承的理解
2016/10/11 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
vue在手机中通过本机IP地址访问webApp的方法
2018/08/15 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
简单介绍Python中的JSON模块
2015/04/08 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Centos下实现安装Python3.6和Python2共存
2018/08/15 Python
Python 最大概率法进行汉语切分的方法
2018/12/14 Python
python IDLE 背景以及字体大小的修改方法
2019/07/12 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
Python如何实现自带HTTP文件传输服务
2020/07/08 Python
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
Html5自定义字体解决方法
2019/10/09 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
.NET是怎么支持多种语言的
2015/02/24 面试题
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
2019个人工作总结
2019/06/21 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL
Python数据分析之绘图和可视化详解
2021/06/02 Python
微信小程序实现聊天室功能
2021/06/14 Javascript