Django Xadmin多对多字段过滤实例

  

在xadmin中是不能像原生管理那样使用formfield_for_manytomany方法来过滤多对多字段

  

 Django Xadmin多对多字段过滤实例

  

进入xadmin源码,找到了formfield_for_dbfield这个方法,测试是有用的,可以过滤第一个选项框的值

  

 Django Xadmin多对多字段过滤实例

  

<强>给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多对多字段过滤实例

  

以上这篇Django Xadmin多对多字段过滤实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Django Xadmin多对多字段过滤实例