想实现的是一个表里面的字段 选择性的出现在菜单栏

1、如何自定义菜单

自定义菜单前

 

在asset\admin.py里添加如下代码:

class NewAssetApprovalZoneAdmin(admin.ModelAdmin):
    list_display = (\'sn\',\'asset_type\',\'manufactory\',\'model\',\'cpu_model\',\'cpu_count\',\'cpu_core_count\',\'ram_size\',\'os_distribution\',\'os_release\',\'date\',\'approved\',\'approved_by\',\'approved_date\')
    \'\'\'
	横着依次显示:\'sn\',\'asset_type\',...省略\'approved_by\',\'approved_date\'
	\'\'\'
	
admin.site.register(models.NewAssetApprovalZone,NewAssetApprovalZoneAdmin)

 \'\'\'只有添加了NewAssetApprovalZoneAdmin才会在后台里显示,要不然即使设置了也不显示\'\'\'

自定义菜单后

 

2、如何自定义搜索

在asset\admin.py里添加如下代码:

class EventLogAdmin(admin.ModelAdmin,BaseAdmin):
    list_display = (\'name\',\'colored_event_type\',\'asset\',\'component\',\'detail\',\'date\',\'user\')
    search_fields = (\'asset\',)
	 \'\'\'使用\'asset\'作为搜索\'\'\'

效果图

 

3、如何自定义过滤

在asset\admin.py里添加如下代码:

class EventLogAdmin(admin.ModelAdmin,BaseAdmin):
    list_display = (\'name\',\'colored_event_type\',\'asset\',\'component\',\'detail\',\'date\',\'user\')
    list_fields = (\'asset\',\'date\')
	 \'\'\'使用\'asset\' date作为过滤\'\'\'

效果图

 

 

4、admin多对多

在asset\models.py里添加如下代码:

tags = models.ManyToManyField(\'Tag\', blank=True)

 fields_horizontal = (\'tags\',)
 
 \'\'\'注意:这种只对多对多有效\'\'\'

在asset\admin.py里添加如下代码:

admin.site.register(models.Asset,AssetAdmin)

更改前

更改后

5、完成如下图显示的(效果下拉框,选择效果)

 

在asset\admin.py里添加如下代码:

class NewAssetApprovalZoneAdmin(admin.ModelAdmin):
.....省略
	actions = [\'approve_selected_objects\']
	
    def approve_selected_objects(modeladmin, request, queryset):
        selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
        ct = ContentType.objects.get_for_model(queryset.model)
        return HttpResponseRedirect("/asset/new_assets/approval/?ct=%s&ids=%s" % (ct.pk, ",".join(selected)))
    approve_selected_objects.short_description = "批准入库"

完成效果如下 

 上面的一点go就报错

为什么会报如下错误呢 ?因为你给了我三个,

那两个是什么东西?

actions = [\'approve_selected_objects\']
	
    def approve_selected_objects(*args,**kargs):
		print(*args,**kargs)
		pass

 

一个是request的那个对象 一个是你选中那几个

版权声明:本文为luoahong原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/luoahong/p/9221266.html