Django Xadmin多对多字段过滤实例
在xadmin中是不能像原生admin那样使用formfield_for_manytomany方法来过滤多对多字段
进入xadmin源码,找到了formfield_for_dbfield这个方法,测试是有用的,可以过滤第一个选项框的值
补充知识:给django admin后台管理user扩展下拉框及多选框的字段
1.首先在models.py中编写扩展User所用到的userProfile模型及下拉框和多选框选项值所需要的模型(因为我所做的下拉框和多选框的值都是从数据库里面取得),代码如下:
2.第二步编写admin.py对User字段进行扩展,代码如下:
# -*- coding: UTF-8 -*- from django.contrib import admin from django import forms from TESTAPP.models import test,userProfile from django.contrib.auth.admin import UserAdmin from django.contrib.auth.models import User # Register your models here. class userProfileForm(forms.ModelForm): option = forms.ModelChoiceField(label=u'下拉框',queryset=test.objects.all()) checkbox = forms.ModelMultipleChoiceField(label=u'多选框',queryset=test.objects.all(),widget=forms.CheckboxSelectMultiple()) class Meta: model = userProfile fields = ['option','checkbox'] class profileInline(admin.StackedInline): model = userProfile form = userProfileForm class testUserAdmin(UserAdmin): inlines = [profileInline,] admin.site.unregister(User) admin.site.register(User, testUserAdmin)
通过这两步就可以试下在django admi台管理User中扩展一个下拉框和一个多选框,效果如下图:
以上这篇Django Xadmin多对多字段过滤实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Django admin 实现search_fields精确查询实例
我就废话不多说了,还是直接看代码吧! search_fields = (u'gift_rule_id',u'user_id', u'activity_id',) //默认的查询集合 def get_queryset(self, request): return super(GiftConfirmAdmin, self).get_queryset(request).all().order_by("-id") //根据关键字进行查询集合 def get_search_results(sel
-
django xadmin 管理器常用显示设置方式
课程管理器: class CourseAdmin(object): # 设置列表显示字段 list_display = ['name', 'course_org', 'detail','degree','learn_times','students','fav_nums','image','click_nums','add_time'] # 设置列表查询字段 search_field = ['name', 'course_org', 'detail','degree','learn_times'
-
django xadmin中form_layout添加字段显示方式
需求: 用的是django的框架,想显示一个基本固定的页面,用到了form_layout 上图的ROW中添加的是model中的字段名,可以显示对应的内容,如果想一行显示多个,可以写成 Row('Flow_type', 'Demand_name'),效果如下图(图片是别人的,借鉴一下) 想正常的显示,还有最后一步就是在把你需要展示的ROW中的字段,放在fields中(部分截取了一下) 补充知识:xadmin 编辑页隐藏字段 引用xadmin 的fieldSet 对不想显示的字段添加**{"styl
-
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
对于使用Django框架开发的系统,当部署时设置settings.py文件中Debug=False时xadmin后台管理系统样式会丢失. [问题原因]: django的生产环境不同开发环境,在生产环境下(DEBUG=False),django.contrib.staticfiles 是不起任何作用的,也就说 django.contrib.staticfiles 只对开发环境(DEBUG=True)开启.所以会导致xadmin样式丢失现象. [解决方案]: ①在settings.py中添加如下配置
-
Django Xadmin多对多字段过滤实例
在xadmin中是不能像原生admin那样使用formfield_for_manytomany方法来过滤多对多字段 进入xadmin源码,找到了formfield_for_dbfield这个方法,测试是有用的,可以过滤第一个选项框的值 补充知识:给django admin后台管理user扩展下拉框及多选框的字段 1.首先在models.py中编写扩展User所用到的userProfile模型及下拉框和多选框选项值所需要的模型(因为我所做的下拉框和多选框的值都是从数据库里面取得),代码如下: 2.
-
django ManyToManyField多对多关系的实例详解
Django 的 ORM 有多种关系:一对一,多对一,多对多 各自定义的方式为 : 一对一: OneToOneField 多对一: ForeignKey 多对多: ManyToManyField 上边的描述太过数据而缺乏人性化,我们来更人性化一些: 多个属于一个,即 belong to : ForeignKey,多个属于一个 一个有一个,即 has one: OneToOneField 一个有很多个,即 has many: lots of A belong to B 与 B has many A
-
使用 django orm 写 exists 条件过滤实例
要用django的orm表达sql的exists子查询,是个比较麻烦的事情,需要做两部来完成 from django.db.models import Exists, OuterRef # 1. 定义子查询条件 relative_comments = Comment.objects.filter( post=OuterRef('pk'), # 注意外键关联方式:post为Comment表的字段,pk表示关联另一表主键 ) # 2. 使用annotate和filter共同定义子查询 Post.ob
-
Django --Xadmin 判断登录者身份实例
一,为了让xadmin 登录者只能看到自己创建的数据 1,model class UserTB(models.Model): name=models.CharField('姓名',max_length=30,blank=True,null=True) email=models.CharField('邮箱',max_length=200,blank=True,null=True) integral = models.IntegerField('积分', default=0) create_time
-
Django 多对多字段的更新和插入数据实例
表的普通字段 一对多字段 多对多字段 插入数据 #插入数据 def add(request): G_title=request.POST.get('title')#-------值为:python书本 G_publish=request.POST.get('publish') #-------值为:1 G_authors_list=request.POST.getlist('authors')#-------值为:[3,7] publish_obj=Publish.objects.get(id=
-
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
环境:Django 2.0.7 xadmin 2.0.1 需求:下拉表单显示的是模型的其他表项或者外键 方法:在adminx.py文件中,在class YourModel Admin中重写函数 # 重写formfield_for_dbfield,设计add和edit表单 def formfield_for_dbfield(self, db_field, **kwargs): if not self.request.user.is_superuser: # 对case这个表项的下拉框选择进行过滤
-
对django xadmin自定义菜单的实例详解
1. 自定义菜单 adminx.py class GlobalSetting(object): site_title = u'xxx后台' def kuF_site_menu(self): return [{ 'title': u'用户&账户', 'perm': self.get_model_perm(User, 'view'), 'icon':'fa fa-users', 'menus':( {'title': u'用户', 'url': self.get_model_url(User, 'c
-
django 在原有表格添加或删除字段的实例
一.如果models.py文件为时: timestamp = models.DateTimeField('保存日期') 会提示: (env8) D:\Desktop\env8\Scripts\mysite>python manage.py makemigrations You are trying to add a non-nullable field 'timestamp' to article without a defa ult; we can't do that (the databas
-
django admin后管定制-显示字段的实例
先说需求: 1.django 自带了admin后管,如果我们需要使用,只需把我们定义的models注册即可: 2.但如果只是简单注册,那显示的很简单,根本看不到每行记录的描述信息,全部以model object 形式显示,必须点击进去才能看到信息,太不方便,如下图: 1.显示关键信息 效果如下图,这样就好看多啦. 2.配置 在 admin.py 文件中配置一下就行. admin.py # Underwriter admin model class UnderwriterAdmin(admin.M
随机推荐
- JavaScript简介_动力节点Java学院整理
- 代理猎手验证数据的设置方法
- Java实现Dbhelper支持大数据增删改
- python anaconda 安装 环境变量 升级 以及特殊库安装的方法
- Swift 中闭包的简单使用
- js脚本编写简单刷票投票系统
- 学习Bootstrap滚动监听 附调用方法
- Asp.net自定义控件之加载层
- yii2.0整合阿里云oss的示例代码
- 程序中两个Double类型相加出现误差的解决办法
- MySql 5.7.17 winx64的安装配置详细教程
- JSON与String互转的实现方法(Javascript)
- BootstrapValidator不触发校验的实现代码
- 用PHP即时捕捉PHP中的错误并发送email通知的实现代码
- java LinkedList源码详解及实例
- Eclipse打开时“发现了以元素'd:skin'”开头的无效内容。此处不应含有子元素的解决方法
- C#.NET获取拨号连接的宽带连接方法
- 深入php define()函数以及defined()函数的用法详解
- 支持oicq头像的留言簿(一)
- 使用docker构建golang线上部署环境的步骤详解