| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874 |
- from django.contrib import admin
- from django.contrib.auth.admin import UserAdmin # 从django继承过来后进行定制
- from django.utils.translation import ugettext_lazy as _
- from django.contrib.auth.forms import UserCreationForm, UserChangeForm
- # Register your models here.
- from apps.AppInfo.models import MyUser, QXZdata, QXZstatus, Equip, Equip_type, QXZdata_New, JKdata, Article, Video_data,Product,Blog,QXZstatus_New,QXZswitchstatus,QXZswitchdata,\
- CKArticle,GardenManage,GardenArea,Areacrop,Store_Manage,Hotel_Info,Hotel_Photo,FarmUser,FarmList,Pick_Pub,Sell_Manage,Person_Pick,QXZAutoswitch, Pic_Info,Sightsee_Info,QXZ_Alarm_Log,\
- Experts, Relations, QXZ_Alarm
- # custom user admin
- class MyUserCreationForm(UserCreationForm): # 增加用户表单重新定义,继承自UserCreationForm
- def __init__(self, *args, **kwargs):
- super(MyUserCreationForm, self).__init__(*args, **kwargs)
- # 必填项:
- self.fields['email'].required = True # 为了让此字段在admin中为必选项,自定义一个form
- # self.fields['user_remark'].required = True # 其实这个name字段可以不用设定required,因为在models中的MyUser类中已经设定了blank=False,但email字段在系统自带User的models中已经设定为
- #self.fields['user_phone'].required = True
- # email = models.EmailField(_('email address'), blank=True),除非直接改源码的django(不建议这么做),不然还是自定义一个表单做一下继承吧。
- class MyUserChangeForm(UserChangeForm): # 编辑用户表单重新定义,继承自UserChangeForm
- def __init__(self, *args, **kwargs):
- super(MyUserChangeForm, self).__init__(*args, **kwargs)
- self.fields['email'].required = True
- class CustomUserAdmin(UserAdmin):
- def __init__(self, *args, **kwargs):
- super(CustomUserAdmin, self).__init__(*args, **kwargs)
- self.list_display = (
- 'username', 'user_remark',
- 'user_phone',
- 'user_picture', 'user_pro',
- 'user_city', 'user_area',
- 'email', 'is_active',
- 'is_staff', 'is_superuser','limit'
- )
- self.search_fields = ('username', 'email', 'user_phone')
- self.form = MyUserChangeForm # 编辑用户表单,使用自定义的表单
- self.add_form = MyUserCreationForm # 添加用户表单,使用自定义的表单
- # 以上的属性都可以在django源码的UserAdmin类中找到,我们做以覆盖
- # 这个方法在源码的admin/options.py文件的ModelAdmin这个类中定义,我们要重新定义它,以达到不同权限的用户,返回的表单内容不同
- def changelist_view(self, request, extra_context=None):
- # 非super用户不能设定编辑是否为super用户:
- if not request.user.is_superuser:
- self.fieldsets = ((None, {'fields': ('username', 'password',)}),
- # 个人信息栏:_ 将('')里的内容国际化,这样可以让admin里的文字自动随着LANGUAGE_CODE切换中英文、
- (_('Personal info'), {'fields': (
- 'user_remark', 'user_phone', 'user_picture', 'user_pro', 'user_city', 'user_area', 'email')}),
- # 权限栏:
- (_('Permissions'), {
- 'fields': ('is_active', 'is_staff', 'groups','limit')}),
- # 重要日期栏:
- (_('Important dates'), {
- 'fields': ('last_login', 'date_joined')}),
- ) # 这里('Permissions')中没有'is_superuser',此字段定义UserChangeForm表单中的具体显示内容,并可以分类显示
- # 非超级用户创建用户:
- self.add_fieldsets = ((None, {'classes': ('wide',),
- 'fields': ('username', 'password1', 'password2', 'email', 'user_remark', 'user_phone', 'user_picture', 'user_pro', 'user_city', 'user_area', 'is_active',
- 'is_staff', 'groups','limit'),
- }),
- ) # 此字段定义UserCreationForm表单中的具体显示内容
- # super账户可以做任何事
- else:
- self.fieldsets = ((None, {'fields': ('username', 'password',)}),
- # 个人信息栏:
- (_('Personal info'), {'fields': (
- 'user_remark', 'user_phone', 'user_picture', 'user_pro', 'user_city', 'user_area', 'email')}),
- # 权限栏:
- (_('Permissions'), {
- 'fields': ('is_active', 'is_staff', 'is_superuser','groups','limit')}),
- # 重要日期栏:
- (_('Important dates'), {
- 'fields': ('last_login', 'date_joined')}),
- )
- # 超级用户创建用户:
- self.add_fieldsets = ((None,
- {'classes': ('wide',),
- 'fields': ('username', 'password1',
- 'password2', 'email',
- 'user_remark',
- 'user_phone', 'user_picture',
- 'user_pro', 'user_city',
- 'user_area', 'is_active',
- 'is_staff', 'is_superuser',
- 'groups','limit'
- ),
- }),
- )
- return super(CustomUserAdmin, self).changelist_view(request, extra_context)
- # 设置每页显示记录数:
- list_per_page = 10
- admin.site.register(MyUser, CustomUserAdmin)
- @admin.register(Equip)
- class EquipAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 放大镜图标:
- #raw_id_fields = ('equip_type',)
- list_display = [
- 'equip_id',
- 'equip_type',
- 'equip_name',
- 'equip_add_time',
- 'equip_user',
- 'equip_location',
- 'equip_desc',
- 'lng',
- 'lat',
- ]
- list_filter = (
- 'equip_add_time',
- 'equip_type'
- )
- search_fields = [
- 'equip_id',
- 'equip_name'
- ]
- # 设置点击哪些字段可以进入修改页面:
- list_display_links = (
- 'equip_id',
- 'equip_user'
- )
- # 设置每页显示记录数:
- list_per_page = 10
- EquipAdmin.short_description = u'设备'
- # 定制模型设备类型Equip_type的 Admin 后台
- class Equip_typeAdmin(admin.ModelAdmin):
- list_display = [
- 'type_id',
- 'type_name',
- 'type_add_time',
- 'topic_name'
- ]
- # 设置每页显示记录数:
- list_per_page = 10
- admin.site.register(Equip_type, Equip_typeAdmin)
- # 气象站数据QXZstatus模型注册和装饰:
- @admin.register(QXZstatus)
- class QXZstatusAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'qxz_status',
- 'qxz_picture'
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'qxz_status',
- 'qxz_picture',
- 'upl_time'
- ]
- # 筛选过滤项:
- list_filter = ('equip_id',)
- # 点击进入详情修改项:
- list_display_links = ('equip_id',)
- # 链接:无
- # list_display_links = None
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置显示外键字段:
- fk_fields = ('equip_id',)
- # 在admin后台类中加入raw_id_fields(只适用于外键)后,会显示外键的详细信息
- raw_id_fields = ("equip_id",)
- # 设置每页显示记录数:
- list_per_page = 10
- # 气象站数据QXZdata模型注册和装饰:
- @admin.register(QXZdata)
- class QXZdataAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'qxz_data',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'qxz_data',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
- # 气象站数据QXZdata_New模型注册和装饰:
- @admin.register(QXZdata_New)
- class QXZdata_NewAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'e1',
- 'e2',
- 'e3',
- 'e4',
- 'e5',
- 'e6',
- 'e7',
- 'e8',
- 'e9',
- 'e10',
- 'e11',
- 'e12',
- 'e13',
- 'e14',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'e1',
- 'e2',
- 'e3',
- 'e4',
- 'e5',
- 'e6',
- 'e7',
- 'e8',
- 'e9',
- 'e10',
- 'e11',
- 'e12',
- 'e13',
- 'e14',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
- # 气象站数据QXZdata_New模型注册和装饰:
- @admin.register(QXZstatus_New)
- class QXZstatus_NewAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'e1',
- 'e2',
- 'e3',
- 'e4',
- 'e5',
- 'e6',
- 'e7',
- 'e8',
- 'e9',
- 'e10',
- 'e11',
- 'e12',
- 'e13',
- 'e14',
- 'interval',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'e1',
- 'e2',
- 'e3',
- 'e4',
- 'e5',
- 'e6',
- 'e7',
- 'e8',
- 'e9',
- 'e10',
- 'e11',
- 'e12',
- 'e13',
- 'e14',
- 'interval',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
- # 监控设备数据JKdata模型注册和装饰:
- @admin.register(JKdata)
- class JKdataAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'jk_token',
- 'jk_type',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'jk_token',
- 'jk_type',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
- # 新闻表
- @admin.register(Article)
- class ArticleAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- # 'id',
- 'title',
- 'intro',
- 'head_img',
- 'content',
- 'author',
- 'publish_date',
- 'hidden',
- 'priority'
- ]
- # 列表显示项:
- list_display = [
- # 'id',
- 'title',
- 'intro',
- 'head_img',
- 'content',
- 'author',
- 'publish_date',
- 'hidden',
- 'priority'
- ]
- # 筛选过滤项:
- list_filter = ('title',)
- # 搜索项:
- search_fields = ['title']
- # 设置每页显示记录数:
- list_per_page = 10
- # 视频信息表
- @admin.register(Video_data)
- class Video_dataAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- # 'id',
- 'title',
- 'intro',
- 'video_url',
- 'video_img',
- 'author',
- 'publish_date',
- 'hidden',
- 'priority'
- ]
- # 列表显示项:
- list_display = [
- # 'id',
- 'title',
- 'intro',
- 'video_url',
- 'video_img',
- 'author',
- 'publish_date',
- 'hidden',
- 'priority'
- ]
- # 筛选过滤项:
- list_filter = ('title',)
- # 搜索项:
- search_fields = ['title']
- # 设置每页显示记录数:
- list_per_page = 10
- # 产品信息表
- @admin.register(Product)
- class ProductAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- # 'id',
- 'title',
- 'intro',
- 'content',
- 'mobile',
- 'head_img',
- 'author',
- 'publish_date',
- 'hidden',
- 'priority'
- ]
- # 列表显示项:
- list_display = [
- # 'id',
- 'title',
- 'intro',
- 'content',
- 'mobile',
- 'head_img',
- 'author',
- 'publish_date',
- 'hidden',
- 'priority'
- ]
- # 筛选过滤项:
- list_filter = ('title',)
- # 搜索项:
- search_fields = ['title']
- # 设置每页显示记录数:
- list_per_page = 10
- #注册该模型
- @admin.register(Blog)
- class BlogAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['title', 'body']
- # 气象站开关表QXZswitchstatus模型注册和装饰:
- @admin.register(QXZswitchstatus)
- class QXZswitchstatusAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'qxz_switch',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'qxz_switch',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
- # 气象站开关表QXZswitchdata模型注册和装饰:
- @admin.register(QXZswitchdata)
- class QXZswitchdataAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'qxz_switch_data',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'qxz_switch_data',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
- #注册该模型
- @admin.register(CKArticle)
- class CKArticleAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['title','art_type','author','writer','intro','head_img','video_url','content','hidden','upl_time']
- # 搜索项:
- search_fields = ['title']
- # # 园区人员表
- # @admin.register(GardenUser)
- # class GardenUserAdmin(admin.ModelAdmin):
- # # 列表页面显示字段
- # list_display = ['username','mobile','gender']
- # # 搜索项:
- # search_fields = ['username']
- # 园区管理表
- @admin.register(GardenManage)
- class GardenManageAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['name','addr','area','crop']
- # 搜索项:
- search_fields = ['name']
- # 地块表
- @admin.register(GardenArea)
- class GardenAreaAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['name','user','garden','manage','location','location_2','addr','area','mobile','img','img_1','desc','upl_time','hidden']
- # 搜索项:
- search_fields = ['name']
- # 区域种植统计
- @admin.register(Areacrop)
- class AreacropAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['cropname','area','crop_count','upl_time']
- # 搜索项:
- search_fields = ['cropname']
- # 销售管理
- @admin.register(Sell_Manage)
- class SellManageAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['farm','name','num','money','upl_time']
- # 搜索项:
- search_fields = ['name']
- # 销售管理
- @admin.register(Person_Pick)
- class PersonPickAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['farm','name','var','num','upl_time']
- # 搜索项:
- search_fields = ['name']
- # 库存管理
- @admin.register(Store_Manage)
- class StoreManageAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['name','rtype','spec','rese','graden','upl_time']
- # 搜索项:
- search_fields = ['name']
- # 民宿表
- @admin.register(Hotel_Info)
- class HotelInfoAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['name','price','intro','addr','location','person','hotel_img','hotel_tel','upl_time','author','content']
- # 搜索项:
- search_fields = ['name']
- # 民宿照片表
- @admin.register(Hotel_Photo)
- class HotelPhotoAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['hotel','upl_time','addr']
- # 搜索项:
- search_fields = ['addr']
- # 农场管理者
- @admin.register(FarmUser)
- class FarmUserAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['name','gender','mobile','upl_time']
- # 搜索项:
- search_fields = ['name']
- # 民宿照片表
- @admin.register(FarmList)
- class FarmListAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['name','user','manage_user','garden','area','curr_var','farm_img','upl_time','hidden']
- # 搜索项:
- search_fields = ['name']
- # 采摘发布
- @admin.register(Pick_Pub)
- class Pick_PubAdmin(admin.ModelAdmin):
- # 列表页面显示字段
- list_display = ['farm','name','company','pick_img','upl_time','content','hidden']
- # 搜索项:
- search_fields = ['name']
- # 气象站阈值表QXZAutoswitch模型注册和装饰:
- @admin.register(QXZAutoswitch)
- class QXZAutoswitchAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'upl_time',
- 'qxz_auto',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'upl_time',
- 'qxz_auto',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['equip_id__equip_id']
- # 设置每页显示记录数:
- list_per_page = 10
-
-
- # 气象站阈值表QXZAutoswitch模型注册和装饰:
- @admin.register(Pic_Info)
- class Pic_InfoAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'pic_user',
- 'locat1',
- 'locat2',
- 'pic_center',
- 'addr',
- 'locat_info',
- 'upl_time',
- ]
- # 列表显示项:
- list_display = [
- 'pic_user',
- 'locat1',
- 'locat2',
- 'pic_center',
- 'addr',
- 'locat_info',
- 'upl_time',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['addr']
- # 设置每页显示记录数:
- list_per_page = 10
-
-
- # 景点
- @admin.register(Sightsee_Info)
- class Sightsee_InfoAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'name',
- 'price',
- 'desc',
- 'location',
- 'addr',
- 'sightsee_stime',
- 'sightsee_etime',
- 'sightsee_img',
- 'sightsee_tel',
- 'guide_img',
- 'hidden',
- 'author',
- 'content',
- ]
- # 列表显示项:
- list_display = [
- 'name',
- 'price',
- 'desc',
- 'location',
- 'addr',
- 'sightsee_stime',
- 'sightsee_etime',
- 'sightsee_img',
- 'sightsee_tel',
- 'guide_img',
- 'hidden',
- 'author',
- 'content',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['addr']
- # 设置每页显示记录数:
- list_per_page = 10
-
-
-
- # 气象站阈值表QXZAutoswitch模型注册和装饰:
- @admin.register(QXZ_Alarm_Log)
- class QXZ_Alarm_LogAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'logs',
- 'ekey',
- 'upl_time',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'logs',
- 'ekey',
- 'upl_time',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['addr']
- # 设置每页显示记录数:
- list_per_page = 10
-
- # 专家表
- @admin.register(Experts)
- class ExpertsAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'name',
- 'relation',
- 'desc',
- 'pic',
- 'upl_time',
- ]
- # 列表显示项:
- list_display = [
- 'name',
- 'relation',
- 'desc',
- 'pic',
- 'upl_time',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['name']
- # 设置每页显示记录数:
- list_per_page = 10
- # 合作伙伴表
- @admin.register(Relations)
- class RelationsAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'name',
- 'relation',
- 'desc',
- 'pic',
- 'upl_time',
- ]
- # 列表显示项:
- list_display = [
- 'name',
- 'relation',
- 'desc',
- 'pic',
- 'upl_time',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['name']
- # 设置每页显示记录数:
- list_per_page = 10
- # 合作伙伴表
- @admin.register(QXZ_Alarm)
- class QXZ_AlarmAdmin(admin.ModelAdmin):
- actions_on_bottom = False
- actions_on_top = True
- # 详情显示项:
- fields = [
- 'equip_id',
- 'conf',
- 'tel',
- 'upl_time',
- ]
- # 列表显示项:
- list_display = [
- 'equip_id',
- 'conf',
- 'tel',
- 'upl_time',
- ]
- # 筛选过滤项:
- list_filter = ('upl_time',)
- # 搜索项:
- search_fields = ['name']
- # 设置每页显示记录数:
- list_per_page = 10
|