对象 ModelAdmin类是模型在Admin界面中的表示形式 定义:定义一个类,继承于admin.ModelAdmin,注册模型时使用这个类 class HeroAdmin(admin.ModelAdmin...): 通过重写admin.ModelAdmin的属性规定显示效果,属性主要分为列表页、增加修改页两部分 列表页选项 “操作选项”的位置 actions_on_top、actions_on_bottom:...list_filter = ['hname', 'hcontent'] list_per_page 每页中显示多少项,默认设置为100 class HeroAdmin(admin.ModelAdmin)...list_per_page = 10 search_fields 搜索框 列表类型,表示在这些字段上进行搜索 只能接收字段 class HeroAdmin(admin.ModelAdmin):...fields = [('hname', 'hcontent')] fieldsets:分组显示 class HeroAdmin(admin.ModelAdmin): ...
Mode中的某个类注册,即可在Admin中实现增删改查的功能,如: admin.site.register(models.UserInfo) 但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin...): list_display = ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...) 7. date_hierarchy,列表时,对Date和DateTime类型进行搜索 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin
三、将action定义为ModelAdmin的方法 上面的make_published看起来已经不错了,但是我们一般会将它作为ModelAdmin的方法来使用。...下面我们把它移到ArticleAdmin类中: class ArticleAdmin(admin.ModelAdmin): ......例如下面使用self引用,为方法添加提示信息的功能: class ArticleAdmin(admin.ModelAdmin): ......在指定模型中禁用所有actions:设置ModelAdmin.actions为None。(这会连带全局actions一起禁用了。)...,你只需要改写ModelAdmin.get_actions()方法。
进行操作,如: 1 2 3 4 5 6 7 8 9 10 11 方式一: class UserAdmin(admin.ModelAdmin): list_display = ('...): list_display = ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...1 2 3 4 5 6 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('...1 2 3 4 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user...详细页面时,M2M显示时,数据移动选择(方向:上下和左右) 1 2 3 @admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin
): list_display = ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如: 1. list_display,列表时,定制显示的列。...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): search_fields = ('user'
前言 列表页优化和排序 ModelAdmin django的options.py里面 ModelAdmin类定义的参数可以设置admin后台列表页面,相关的参数如下 class ModelAdmin(BaseModelAdmin...= [] 排序字段 后台列表页面,如果想按某个字段排序,可以加个ordering参数,比如按创建时间(creat_time)降序 备注:ordering参数在BaseModelAdmin类里面,不在ModelAdmin...类,ModelAdmin继承了BaseModelAdmin ?...修改admin.py文件内容,加个ordering参数,create_time字段前面的-表示按降序 class ControlArticle(admin.ModelAdmin): # 显示的字段...按时间分层 date_hierarchy参数默认为None,设置一个时间字段,可以按时间分层删选 class ControlArticle(admin.ModelAdmin): # 显示的字段
添加操作到 ModelAdmin 接下来,我们需要把操作告诉ModelAdmin。它和其他配置项的工作方式相同。...ModelAdmin上的操作 ModelAdmin 上面的例子展示了定义为一个简单函数的make_published操作。...为特定的ModelAdmin禁用所有操作 ModelAdmin 如果你想批量移除所提供 ModelAdmin上的所有操作,可以把ModelAdmin.actions设置为None: class MyModelAdmin...(admin.ModelAdmin): actions = None 这样会告诉ModelAdmin,不要展示或者允许任何操作,包括站点级操作。...按需启用或禁用操作 ModelAdmin.
对象 ModelAdmin类是模型在Admin界面中的表示形式 定义:定义一个类,继承于admin.ModelAdmin,注册模型时使用这个类 class HeroAdmin(admin.ModelAdmin...): 通过重写admin.ModelAdmin的属性规定显示效果,属性主要分为列表页、增加修改页两部分 列表页选项 “操作选项”的位置 actions_on_top、actions_on_bottom:...默认显示在页面的顶部 class HeroAdmin(admin.ModelAdmin): actions_on_top = True actions_on_bottom = True...list_filter = ['hname', 'hcontent'] list_per_page 每页中显示多少项,默认设置为100 class HeroAdmin(admin.ModelAdmin)...fields = [('hname', 'hcontent')] fieldsets:分组显示 class HeroAdmin(admin.ModelAdmin): ...
If an admin class isn't given, it will use ModelAdmin (the default admin options)...._registry[model] = admin_class(model, self) register函数第一个参数是注册的模块名称,第二个参数不传默认是None,但是实际使用的是ModelAdmin...,ModelAdmin已模块名称作为参数实例化得到的对象作为 registry字典的value。...1 admin.site.register(models.UserInfo) # 注册的时候没有传入admin_class,默认使用的是ModelAdmin 会根据下面的代码添加到urlpatterns...这个类的urls属性【因为注册的时候没有传入admin_class,所以默认是ModelAdmin】 再来看下ModelAdmin这个类的urls属性 def get_urls(self): from
定义与使用Admin管理类 Django提供的Admin站点的展示效果可以通过自定义ModelAdmin类来进行控制。...定义管理类需要继承自admin.ModelAdmin类,如下 from django.contrib import admin class BookInfoAdmin(admin.ModelAdmin...装饰器 @admin.register(BookInfo) class BookInfoAdmin(admin.ModelAdmin): pass 调整列表页展示 a....actions_on_bottom=False class BookInfoAdmin(admin.ModelAdmin): ......列表中的列 class BookInfoAdmin(admin.ModelAdmin): ... list_display = ['id','btitle'] ?
Mode中的某个类注册,即可在Admin中实现增删改查的功能,如: admin.site.register(models.UserInfo) 但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin...进行操作,如: 方式一 class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',) admin.site.register...): list_display = ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',
Test,TestAdmin) 浏览器端登录页面:类似以下后缀 1 http://127.0.0.1:8000/admin/ ---- 管理页面显示 创建模型管理类来管理某个模型在后台显示的页面形式 ModelAdmin...): pass 页大小 每页中显示多少条数据,默认为每页显示100条数据,设置为20 12 class TestAdmin(admin.ModelAdmin): list_per_page...一个代表 ModelAdmin 属性的字符串。 一个代表模型属性的字符串。...用模型属性显示 模型的id title pub_date 三个属性 123 class TestAdmin(admin.ModelAdmin): ... ...更多参数类型:ModelAdmin.list_filter 12 class TestAdmin(admin.ModelAdmin): list_filter = ['is_delete']
创建Admin类:在admin.py中,为每个模型创建一个Admin类,例如class MyModelAdmin(admin.ModelAdmin): ...。...): list_display = ['name', 'description'] @admin.register(Comment) class CommentAdmin(admin.ModelAdmin...): actions = ['make_active', 'make_inactive'] def make_active(modeladmin, request, queryset)...): actions = ['cancel_orders', 'ship_orders'] def cancel_orders(modeladmin, request, queryset...): actions = ['activate_users', 'deactivate_users'] def activate_users(modeladmin, request,
Mode中的某个类注册,即可在Admin中实现增删改查的功能,如: admin.site.register(models.UserInfo) 但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin...进行操作,如: 方式一: class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',) admin.site.register...): list_display = ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'
admin后台管理的显示标签:verbose_name='' email = models.EmailField(blank=True, verbose_name='e-mail' ) 6 自定义ModelAdmin...django.contrib import admin from mysite.books.models import Publisher, Author, Book class AuthorAdmin(admin.ModelAdmin...////search_fields=('a','b') ////// date_hierarchy='xx_date' 在右上角有个日期的导航条 class BookAdmin(admin.ModelAdmin...publication_date' ordering = ('-publication_date',) 7 /////自定义编辑表单: fields class BookAdmin(admin.ModelAdmin...以致于book的添加页面装载时间较久,因为它必须把每一个publishe都装载并显示在下拉框 中 9 ForeignKey:用raw_id_fields class BookAdmin(admin.ModelAdmin
Test,TestAdmin) 浏览器端登录页面:类似以下后缀 1 http://127.0.0.1:8000/admin/ ---- 管理页面显示 创建模型管理类来管理某个模型在后台显示的页面形式 ModelAdmin...): pass 页大小 每页中显示多少条数据,默认为每页显示100条数据,设置为20 12 class TestAdmin(admin.ModelAdmin): list_per_page...一个代表 ModelAdmin 属性的字符串。 一个代表模型属性的字符串。...用模型属性显示 模型的id title pub_date 三个属性 123 class TestAdmin(admin.ModelAdmin): ... ...12 class TestAdmin(admin.ModelAdmin): search_fields = ['id','name'] 在搜索框中进行搜索时,Django 会将搜索查询拆分成多个词
from django.contrib import admin from blog.models import Blog #Blog模型的管理器 class BlogAdmin(admin.ModelAdmin...import admin from blog.models import Blog #Blog模型的管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin...django.utils.safestring import mark_safe #Blog模型的管理器 @admin.register(Book) class BookAdmin(admin.ModelAdmin...autodiscover(): autodiscover_modules('admin', register_to=site) 2,注册模型类 class BookAdmin(admin.ModelAdmin...(Publish)} 至此,注册环节完成 3,admin的url配置 urlpatterns = [ path('admin/', admin.site.urls), ] class ModelAdmin
基于Model自动创建的基础的CRUD页面 批量操作:action、filter、search 方便的自定义:ModelAdmin、ModelForm 数据层定制 重载ModelAdmin,设定属性:...class BookAdmin(admin.ModelAdmin): search_fields = ('name', 'alias') fields = ('name', 'alias...model = Book look http://localhost:8000/admin/book/book/54/ 深度定制 重写admin模板自定义context不好 合理的方式是模板继承,继承ModelAdmin...需要看源码 代码的高耦合 So, 小伙伴来了 admin2 - by pydanny xadmin - by sshwsfc(差沙)微云 好看的主题 都是基于Bootstrap 数据层的更改 xadmin把ModelAdmin
): list_display = ('user', 'pwd',) ModelAdmin中提供了大量的可定制功能,如 1. list_display,列表时,定制显示的列。...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...@admin.register(models.UserInfo) class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd'...4.设置只读字段 在使用admin的时候,ModelAdmin默认对于model的操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑的。...5、数据保存时进行一些额外的操作(通过重写ModelAdmin的save_model实现) ?
Django后台默认只有一个动作Delete selected xxxxs, 那么如果自定义动作该怎么办, 也很容易, 直接写个类似于这种的函数 Python def make_published(modeladmin..., request, queryset): queryset.update(status='p') 然后绑定到ModelAdmin的actions属性 admin.py Python class...TriggerAdmin(admin.ModelAdmin): empty_value_display = u'无规则' list_display = ('__str__', 'id'...显然不能这样做, 当然django有动态生成action的方法, 那就是admin.ModelAdmin的get_actions()方法 首先写个闭包 根据role生成action function actions.py...下面重写get_actions() admin.py Python class TriggerAdmin(admin.ModelAdmin): empty_value_display = u'无规则
领取专属 10元无门槛券
手把手带您无忧上云