对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中字典映射类型的学习教程
Aug 20 Python
Python中turtle作图示例
Nov 15 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
Python 模拟动态产生字母验证码图片功能
Dec 24 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
如何基于Python实现word文档重新排版
Sep 29 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
Python日志打印里logging.getLogger源码分析详解
Jan 17 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
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
php Rename 更改文件、文件夹名称
2011/05/24 PHP
PHP header()函数使用详细(301、404等错误设置)
2013/04/17 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
PHP new static 和 new self详解
2017/02/19 PHP
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
2014/04/23 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
浅析Vue 中的 render 函数
2020/02/28 Javascript
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
pytyon 带有重复的全排列
2013/08/13 Python
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
使用Python生成url短链接的方法
2015/05/04 Python
详解python中的 is 操作符
2017/12/26 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
详解Python中openpyxl模块基本用法
2021/02/23 Python
Ootori在线按摩椅店:一家专业的按摩椅制造商
2019/04/10 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
行政主管岗位职责
2015/02/03 职场文书
应聘教师求职信范文
2015/03/20 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技