UU Blog

Django 注册模型到xadmin管理和修改展示字段

添加了模型,想在后台管理,使用xadmin的话,和django有一点点不一样。

注册模型到后台

在每个app下面新建一个adminx.py,导入相应的模型
xadmin.site.register(UserFavorite, UserFavoriteAdmin)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# _*_ coding:utf-8 _*_
import xadmin

from .models import UserMessage, UserAsk, UserCourse, UserFavorite, CourseCommets


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


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


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


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


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


xadmin.site.register(UserFavorite, UserFavoriteAdmin)
xadmin.site.register(UserCourse, UserCourseAdmin)
xadmin.site.register(UserAsk, UserAskAdmin)
xadmin.site.register(UserMessage, UserMessageAdmin)
xadmin.site.register(CourseCommets, CourseCommetsAdmin)

list_display是在后台展示的列
list_filter是在后台提供过滤器的字段
search_fields是开启搜索功能的字段
最后将模型和定义的模型管理注册一些。

修改模型名字

注册到后台后,菜单那里默认显示的模型名是我们定义的英文名,要想改成中文,需要修改以下两个地方。

  1. <path-to-you-app>/apps.py
    增加verbose_name

    1
    2
    3
    class OperationConfig(AppConfig):
    name = 'operation'
    verbose_name = u'用户操作'
  2. <path-to-you-app>/__init__.py
    修改默认app配置为我们指定的。

    1
    default_app_config = 'operation.apps.OperationConfig'
给作者打一针鸡血