对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中的下划线详解
Jun 24 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
Django项目中使用JWT的实现代码
Nov 04 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
Mar 06 Python
浅谈keras2 predict和fit_generator的坑
Jun 17 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 Python
在 Python 中利用 Pool 进行多线程
Apr 24 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
PHP Undefined index报错的修复方法
2011/07/17 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
深入php之规范编程命名小结
2013/05/15 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
2016/09/22 PHP
js 操作符实例代码
2009/10/24 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
使用apply方法实现javascript中的对象继承
2013/12/16 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
Bootstrap中data-target 到底是什么
2017/02/14 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[02:16]深扒TI7聊天轮盘语音出处2
2017/05/11 DOTA
python自定义异常实例详解
2017/07/11 Python
TensorFlow损失函数专题详解
2018/04/26 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
Python爬取成语接龙类网站
2018/10/19 Python
python 堆和优先队列的使用详解
2019/03/05 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
多重CSS背景动画实现方法示例
2014/04/04 HTML / CSS
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
质检部岗位职责
2013/11/11 职场文书
总经理职责
2013/12/22 职场文书
三月学雷锋月活动总结
2014/04/28 职场文书
计算机毕业生求职信
2014/06/10 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python