欢迎访问宙启技术站
智能推送

Django.contrib.adminregister()方法的参数解析

发布时间:2023-12-24 09:24:01

方法register()用于在admin站点中注册模型。它接受以下参数:

1. model:要注册的模型。例如,如果我们有一个名为Book的模型类,则可以使用admin.site.register(Book)来注册它。

2. admin_class:自定义Admin类的实例,用于管理这个模型的后台。例如,创建一个自定义Admin类class BookAdmin(admin.ModelAdmin),然后使用admin.site.register(Book, BookAdmin)来注册模型和自定义的Admin类。

3. **options:任意数量的参数,用于配置Admin类。以下是一些常用的选项参数:

- list_display:指定Admin类的列表页面显示哪些字段。例如,list_display = ('title', 'author', 'publication_date')

- list_filter:指定Admin类的侧边栏过滤器。例如,list_filter = ('author', 'publication_date')

- search_fields:指定Admin类的搜索字段。例如,search_fields = ('title', 'author')

- list_per_page:指定每页显示的对象数量。例如,list_per_page = 20

以下是一个完整的例子,展示了如何使用register()方法来注册一个模型和自定义的Admin类:

from django.contrib import admin
from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'author', 'publication_date')
    list_filter = ('author', 'publication_date')
    search_fields = ('title', 'author')
    list_per_page = 20

admin.site.register(Book, BookAdmin)

在上面的例子中,我们首先导入了admin模块和我们要注册的模型Book。然后,我们创建了一个自定义的Admin类BookAdmin,指定了要显示的字段、过滤器、搜索字段和每页显示的对象数量。最后,我们使用admin.site.register(Book, BookAdmin)来注册模型和自定义的Admin类。