Ŀ¼
杀手级功能: 在新建项目时候已经自动生成!
1、创建超级用户:python manage.py createsuperuser
2、登录admin系统;
3、配置文件修改:
LANGUAGE_CODE = 'zh-hans' // 修改后台界面语言为汉字 TIME_ZONE = 'Asia/Shanghai' // 时区设置 USE_TZ = False //
4、注册表: 进入app下的admin.py
文件:
from .models import UserProfile class UserProfileAdmin(admin.ModelAdmin): pass admin.site.register(UserProfile, UserProfileAdmin)
5、刷新admin页面即可
继承自admin.
1、安装xadmin模块, 同时也会安装相关依赖包: pip install xadmin
, 若安装出现错误,很正常!,见安装xadmin;
2、在setting.py
将xadmin
和crispy_forms
放进INSTALLED_APPS
中;
3、同步xadmin自带的表: python manage.py migrate
4、修改url.py
import xadmin urlpatterns = [ url(r'^xadmin/', xadmin.site.urls), ]
可能出现错误:
解决办法:
README.rst这个文件的编码有问题,可以内容没什么重要的,
1、直接到github上下载安装包,下载地址:https://github.com/sshwsfc/xadmin
2、然后新建一个txt空文件,把文件名改成README.rst,替换原来的文件下载安装包,下载zip压缩文件;
3、直接进入压缩包所在的目录安装: pip install xadmin-master.zip
.
4、安装若出现错误,可能是缺少安装的依赖包:
# requirement.txt django-crispy-forms>=1.6.0 django-import-export>=0.5.1 django-reversion>=2.0.0 django-formtools==2.0 future==0.15.2 httplib2==0.9.2 six==1.10.0
由于xadmin源码是最新版本的,还可以自定义功能,所以推荐源码安装
- github下载源码:
https://github.com/sshwsfc/xadmin
; - 解压,取出xadmin文件夹,放在项目根目录;
- 新建
extra_apps
文件夹, 将xadmin文件夹(注意是内部的xadmin文件夹)放进去; - 同样配置文件设置:
sys.path.insert(1, os.path.join(BASE_DIR, ‘extra_apps‘))
;
类似admin的model注册;
1、每个app下新建adminx.py
(注意文件名不能写错)文件,xadmin会默认查询此文件;
2、写入以下代码:
// 修改后刷新页面即可 import xadmin from course.models import Course, Chapter, Video, CourseResouces class CourseAdmin(object): // 继承object # 选择显示的字段 list_display = ['name', 'mobile', 'course_name'] # 添加字段搜索,筛选功能 search_fields = ['name', 'mobile', 'course_name'] # 某些字段不能加,例如时间 # 界面自带导出功能, 可以导出多种格式 # 过滤器 list_filter = ['name', 'mobile', 'course_name'] # 按照students_num降序排列,同时也可以在标题栏点击降序 ordering=['-students_num'] # 自定制图标显示 model_icon = 'fa fa-columns' # 设置只读字段 readonly_fields = ['name', 'degree', 'learn_times'] # 设置不显示某些字段 exclude = ['students_num'] # 只要是涉及到此model的外键都会显示查询,不会出现下拉框,优点是当数据量过大时候,不会加载所有数据 relfield_style = 'fk-ajax' # 设置在列表页页面可编辑的字段 list_editable = ['degree','learn_times'] # 页面定时刷新,可以在2和4s中选择,而且还可以取消刷新 refresh_times = [2, 4] xadmin.site.register(Course, CourseAdmin)
3、注意:user表会自动生成,无须注册!;
4、若有多个app的话,添加字段需要仔细点!
# users/adminx.py from django.contrib import admin class UserProfileAdmin(admin.ModelAdmin): list_display = ['username', 'nick_name', 'gender', 'address'] admin.site.register(UserProfile, UserProfileAdmin)
先选择一个app下的adminx.py文件, 随后进行注册操作.
from xadmin import views class BaseSetting(object): enable_themes = True use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)
class GlobalSetting(object): site_title = '学习在线后台管理系统' site_footer = '学习在线' # 折叠左侧app菜单 menu_style = "accordion" xadmin.site.register(views.CommAdminView, GlobalSetting)
// app的目录下的apps.py class CourseConfig(AppConfig): name = 'appname' verbose_name = '要显示的名称' // app的目录下的__init__.py default_app_config = "appname.apps.CourseConfig"
下载最新版本的font-awesome样式文件,官网地址:http://fontawesome.dashgame.com/
更新:将下载的css和fonts文件放进\mxonline\extra_apps\xadmin\static\xadmin\vendor\font-awesome\
覆盖;
在官网查看对应图标的class值,若不能点击查看则Ctrl+alt+c
查看;
在对应的adminx.py文件中设置图标:
class CourseAdmin(object): model_icon = 'fa fa-columns' # 此处填写对应的class值即可
更新图标后若强制刷新无效则重启即可;
# models.py class Course(): def get_chap_num(self): return self.chapter_set.all().count() # 中文显示,若没有定义则只会显示get_chap_num get_chap_num.short_description='章节数' def my_link(self): from django.utils.safestring import mark_safe return mark_safe('<a href="https://www.baidu.com">链接</a>') my_link.short_description='章节数' # adminx.py class CourseAdmin(): list_display=['get_chap_num','my_link']


修改权限失败:未找出原因!
1、安装:
源码下载:。
在虚拟环境下安装zip文件:pip install DjangoUeditor-master.zip
,或者将源码包放在extra_apps文件夹下;
2、settings中添加app:
INSTALLED_APPS = [ 'DjangoUeditor', ]
3、配置url:url(r‘^ueditor/‘,include(‘DjangoUeditor.urls‘ ))
4、修改model中需要使用ueditor的字段:
class Course(models.Model): # 配置ueditor detail = UEditorField(verbose_name='课程详情', width=600, height=300, imagePath="courses/ueditor/", filePath="courses/ueditor/",default='')
5、在xadmin\plugins
文件下新建ueditor.py
文件:
import xadmin from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView from DjangoUeditor.models import UEditorField from DjangoUeditor.widgets import UEditorWidget from django.conf import settings class XadminUEditorWidget(UEditorWidget): def __init__(self, **kwargs): self.ueditor_options = kwargs self.Media.js = None super(XadminUEditorWidget,self).__init__(kwargs) class UeditorPlugin(BaseAdminPlugin): def get_field_style(self, attrs, db_field, style, **kwargs): if style == 'ueditor': if isinstance(db_field, UEditorField): widget = db_field.formfield().widget param = {} param.update(widget.ueditor_settings) param.update(widget.attrs) return {'widget':XadminUEditorWidget(**param)} return attrs def block_extrahead(self, context, nodes): js = '<script type="text/javascript" src="%s"></script>' %(settings.STATIC_URL + "ueditor/ueditor.config.js") js += '<script type="text/javascript" src="%s"></script>' %(settings.STATIC_URL + "ueditor/ueditor.all.min.js") nodes.append(js) xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView) xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)
6、在\xadmin\plugins\__init__.py
文件中配置:
PLUGINS = ( 'ueditor', )
7、course/adminx.py
中配置:
class CourseAdmin(object): #detail就是要显示为富文本的字段名 style_fields = {"detail": "ueditor"}
8、前端页面渲染配置:
{% autoescape off %} {{ course.detail }} {% endautoescape %}
原文:https://www.cnblogs.com/fqh202/p/9256003.html