xadmin的各种坑:
xadmin编辑页面出现文件需要重复上传的问题:
# 第一步:
xadmin\templates\xadmin\views\model_form.html文件中的form标签加 novalidate
# 第二步:
修改 xadmin/static/xadmin/js/xadmin.plugin.quick-form.js 文件如下
......
, save: function(newValue) {
@@ -108,16 +108,31 @@
// }
// })
var $nonfile_input = this.$form.serializeArray();
var formData = new FormData();
$nonfile_input.forEach(function(field) {
formData.append(field.name, field.value)
});
var $file_input = this.$form.find("input[type=file]");
$file_input.each(function (idx, file) {
formData.append($(file).attr('name'), file.files[0]);
});
# 第 111 行
return $.ajax({
data: [this.$form.serialize(), $.param(off_check_box)].join('&'),
data: formData,
url: this.$form.attr('action'),
type: "POST",
dataType: 'json',
contentType: false,
processData: false,
beforeSend: function(xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", $.getCookie('csrftoken'));
}
})
},
},
}
修改界面顶部和底部显示
在文件 \apps\users\adminx.py 中添加:
class GlobalSettings(object):
site_title = '华南mall后台管理系统'
site_footer = "华南mall在线教育网"
xadmin.site.register(views.CommAdminView, GlobalSettings)
修改app名称
在各个app下面找到 apps.py文件:
from django.apps import AppConfig
class UsersConfig(AppConfig):
name = 'users'
verbose_name = "用户管理"
设置左侧菜单折叠
在文件 \apps\users\adminx.py 中添加:menu_style = 'accordion'
class GlobalSettings(object):
site_title = '华南mall后台管理系统'
...
menu_style = 'accordion'
app名称的修改
# app名为users下的apps.py
from django.apps import AppConfig
class UsersConfig(AppConfig):
# 设置app图标
app_icon = 'fa fa-line-chart'
# app名
name = 'users'
verbose_name = u'用户管理'
# __init__.py
default_app_config='users.apps.UsersConfig'
自定义左侧菜单前面的图标
class GlobalSettings(object):
site_title = '华南mall后台管理系统'
..........
global_models_icon = {EmailVerifyRecord: "fa fa-envelope-o", Banner: "fa fa-spin fa-apple",Course:"fa fa-book",Lesson:"fa fa-cc",Video:"fa fa-file-video-o",CourseResource:"fa fa-wpforms"}
如果想添加数据的同时方便添加关联model:inlines 机制 同一个页面 可以添加 所有的相关信息
class LessonInline: # 1、创建一个类,指定那个modle
model = Lesson
extra = 0
class CourseAdmin(object):
list_display = ['name','desc','degree','learn_time','students','fav_nums']
search_fields = ['name','desc',]
list_filter = ['name','desc','detail','degree',]
inlines = [LessonInline] # 2、加入到 inlines里面去