在xadmin中是不能像原生管理那样使用formfield_for_manytomany方法来过滤多对多字段
进入xadmin源码,找到了formfield_for_dbfield这个方法,测试是有用的,可以过滤第一个选项框的值
<强>给django管理后台管理用户扩展下拉框及多选框的字段强>
1。首先在models.py中编写扩展用户所用到的userProfile模型及下拉框和多选框选项值所需要的模型(因为我所做的下拉框和多选框的值都是从数据库里面取得),代码如下:
2。第二步编写admin.py对用户字段进行扩展,代码如下:
# - * -编码:utf - 8 - * django。contrib进口管理 从django导入形式 从TESTAPP。模型导入测试,userProfile 从django.contrib.auth。管理导入UserAdmin 从django.contrib.auth。模型导入用户 #这里登记您的模型。 类userProfileForm (forms.ModelForm): 选择=forms.ModelChoiceField(标签=u '下拉框”,queryset=test.objects.all ()) 复选框=forms.ModelMultipleChoiceField(标签=u '多选框”,queryset=test.objects.all(),部件=forms.CheckboxSelectMultiple ()) 类元: 模型=userProfile 字段=(“选项”,“复选框”) 类profileInline (admin.StackedInline): 模型=userProfile 形式=userProfileForm 类testUserAdmin (UserAdmin): 内联=(profileInline,) admin.site.unregister(用户) admin.site。注册(用户、testUserAdmin)
通过这两步就可以试下在django admi台管理用户中扩展一个下拉框和一个多选框,效果如下图:
以上这篇Django Xadmin多对多字段过滤实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。