[py][mx]xadmin详细设置-将app注册到xadmin

首先createsuperuser,创建用户, 然后登陆xadmin.

理解下models的各个字段

  • 复数形式及返回

1312420-20180130151917921-2094707439.png

  • 注册app
    users/adminx.py

1312420-20180130151947671-652111120.png

  • 显示字段
    users/adminx.py
    注: 这里显示的顺序和列表顺序是一致的.

1312420-20180130152020968-749687145.png

  • 搜索字段(手动输入关键字搜索)search_fileds
    users/adminx.py

一般不搜索时间,不好搜索. 这里看到还可以将数据导出各种格式.
1312420-20180130212443187-329157002.png

到此为止,我们每个表的增删改查功能就齐全了.

  • 过滤器list_filter(自动点选搜索), 可以通过时间来点点点过滤了

1312420-20180130211648203-1031942814.png

  • 搜索字段和过滤器

1312420-20180130212546203-1191715261.png

class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']
    search_fields = ['code', 'email', 'send_type']
    list_filter = ['code', 'email', 'send_type', 'send_time']

  • 修改app显示

1312420-20180130152659281-1321015315.png

app/__init__.py
default_app_config = "users.apps.UsersConfig"

users/apps.py
class UsersConfig(AppConfig):
    name = 'users'
    verbose_name = u"用户信息"
  • 一个app下多个模型顺序
    界面上的顺序和注册顺序一致
    1312420-20180130221053656-311250827.png

  • 访问外键

course模型
1312420-20180130221402093-137294211.png

一个course有多个lesson(章节), 章节里要过滤一些关于course的字段, 需要 course__name键的形式访问才会出现.

1312420-20180130221338234-1855246970.png

adminx.py
class LessonAdmin(object):
    list_display = ['course', 'name', 'add_time']
    search_fields = ['course', 'name', 'add_time']
    list_filter = ['course__name', 'name', 'add_time']

代码

在users app下创建adminx.py

import xadmin
from users.models import EmailVerifyRecord, Banner


class EmailVerifyRecordAdmin(object):
    list_display = ['code', 'email', 'send_type', 'send_time']
    search_fileds = ['code', 'email', 'send_type']
    list_filter = ['code', 'email', 'send_type', 'send_time']


xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin)

courses/adminx.py

#!/usr/bin/env python
# coding=utf-8
import xadmin
from courses.models import Course, Lesson, Video, CourseResourse


class CourseAdmin(object):
    list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'fav_nums', 'image', 'click_nums',
                    'add_time']
    search_fields = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'fav_nums', 'image', 'click_nums']
    list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students', 'fav_nums', 'image', 'click_nums',
                   'add_time']


xadmin.site.register(Course, CourseAdmin)


class LessonAdmin(object):
    list_display = ['course', 'name', 'add_time']
    search_fields = ['course', 'name', 'add_time']
    list_filter = ['course__name', 'name', 'add_time']


xadmin.site.register(Lesson, LessonAdmin)


class VideoAdmin(object):
    list_display = ['lesson', 'name', 'add_time']
    search_fields = ['lesson', 'name']
    list_filter = ['lesson', 'name', 'add_time']


xadmin.site.register(Video, VideoAdmin)


class CourseResourseAdmin(object):
    list_display = ['course', 'name', 'download', 'add_time']
    search_fields = ['course', 'name', 'download']
    list_filter = ['course', 'name', 'download', 'add_time']


xadmin.site.register(CourseResourse, CourseResourseAdmin)






courses/__init__.py
default_app_config = "courses.apps.CoursesConfig"


courses/app.py
class CoursesConfig(AppConfig):
    name = 'courses'
    verbose_name = u"课程"

operation/xadmin.py

#!/usr/bin/env python
# coding=utf-8

import xadmin
from operation.models import UserAsk, CourseComments, UserFavorite, UserMessage, UserCourse


class UserAskAdmin(object):
    list_display = ['name', 'mobile', 'course_name', 'add_time']
    search_fields = ['name', 'mobile', 'course_name']
    list_filter = ['name', 'mobile', 'course_name', 'add_time']


xadmin.site.register(UserAsk, UserAskAdmin)


class CourseCommentsAdmin(object):
    list_display = ['user', 'course', 'comments', 'add_time']
    search_fields = ['user', 'course', 'comments']
    list_filter = ['user', 'course', 'comments', 'add_time']


xadmin.site.register(CourseComments, CourseCommentsAdmin)


class UserFavoriteAdmin(object):
    list_display = ['user', 'course', 'fav_id', 'fav_type', 'add_time']
    search_fields = ['user', 'course', 'fav_id', 'fav_type']
    list_filter = ['user', 'course', 'fav_id', 'fav_type', 'add_time']


xadmin.site.register(UserFavorite, UserFavoriteAdmin)


class UserMessageAdmin(object):
    list_display = ['user', 'message', 'has_read', 'add_time']
    search_fields = ['user', 'message', 'has_read']
    list_filter = ['user', 'message', 'has_read', 'add_time']


xadmin.site.register(UserMessage, UserMessageAdmin)


class UserCourseAdmin(object):
    list_display = ['user', 'course', 'add_time']
    search_fields = ['user', 'course']
    list_filter = ['user', 'course', 'add_time']


xadmin.site.register(UserCourse, UserCourseAdmin)

organization/adminx.py

#!/usr/bin/env python
# coding=utf-8

import xadmin
from organization.models import CityDict, CourseOrg, Teacher


class CityDictAdmin(object):
    list_display = ['name', 'desc', 'add_time']
    search_fields = ['name', 'desc']
    list_filter = ['name', 'desc', 'add_time']


xadmin.site.register(CityDict, CityDictAdmin)


class CourseOrgAdmin(object):
    list_display = ['name', 'desc', 'click_nums',
                    'fav_nums', 'image', 'address', 'city', 'add_time']
    search_fields = ['name', 'desc', 'click_nums',
                     'fav_nums', 'image', 'address', 'city']
    list_filter = ['name', 'desc', 'click_nums',
                   'fav_nums', 'image', 'address', 'city', 'add_time']


xadmin.site.register(CourseOrg, CourseOrgAdmin)


class TeacherAdmin(object):
    list_display = ['org', 'name', 'work_years', 'work_company',
                    'work_position', 'points', 'click_nums', 'fav_nums', 'add_time']
    search_fields = ['org', 'name', 'work_years', 'work_company',
                     'work_position', 'points', 'click_nums', 'fav_nums']
    list_filter = ['org', 'name', 'work_years', 'work_company',
                   'work_position', 'points', 'click_nums', 'fav_nums', 'add_time']


xadmin.site.register(Teacher, TeacherAdmin)

参考

转载于:https://www.cnblogs.com/iiiiiher/p/8385221.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值