Django.Contrib.admin特色
django-admin-extras的Python项目详细描述
安装
要安装graphene,只需在shell中运行此命令
pip install django-admin-extras
设置
INSTALLED_APPS=(# ...'django_admin_extras',# ...)
示例
下面是一个简单的Django模型:
fromdjango.dbimportmodelsclassTodoList(models.Model):title=models.CharField(max_length=64)def__str__(self):returnself.titleclassTodoItem(models.Model):text=models.CharField(max_length=256)checked=models.BooleanField(default=False)list=models.ForeignKey(TodoList,on_delete=models.CASCADE)def__str__(self):returnself.text
下面是上述模型的一个简单django管理员:
fromdjango.contribimportadminfromdjango.db.modelsimportQfromdjango_admin_extrasimportInputFilter,custom_titled_filter,custom_view_fieldfrom.modelsimportTodoItemclassTodoItemTextFilter(InputFilter):parameter_name='todoitem__text'title='todo item text'defqueryset(self,request,queryset):ifself.value()isnotNone:q=Q()fortext_partinself.value().split():q&=Q(text__icontains=text_part)returnqueryset.filter(q)@admin.register(TodoItem)classTodoItemAdmin(admin.ModelAdmin):list_display='text','custom_text','checked','custom_bool',list_filter=TodoItemTextFilter,('checked',custom_titled_filter('test title for checked filter')),@custom_view_field(admin_order_field='-text')defcustom_text(self,obj:TodoItem)->str:returnobj.text+' custom'@custom_view_field(boolean=True,short_description='Not checked')defcustom_bool(self,obj:TodoItem)->bool:returnnotobj.checked