xadmin的安装和配置详见博客:http://www.cnblogs.com/shhnwangjian/p/6372503.html 途中可能会遇到缺少什么包, 用pip安装就是了. 此部配置直到能进xadmin后台就可以了.
接下来我们配置我们项目需要用到的一些功能.
首先是我们来把富文本编辑器嵌入在xadmin中, xadmin的官方文档:https://xadmin.readthedocs.io/en/docs-chinese/make_plugin.html#id1 我们的项目嵌套ueditor教程详见: http://www.cnblogs.com/derek1184405959/p/8747961.html
因为这个xadmin插件开发不是一时半会能学会的, 我们主要的目的是学会drf 我们照着教程做吧.
注意教程中有一个url的写法因为版本的不同有bug,
改为
这是因为他们使用的django2.0版本, 而我们使用的是1.10版本.
4.3.注册app到xadmin后台
每个app下都新建adminx.py 为什么要建? 因为: 类似django自动生成的admin.py文件,xadmin会自动在每个app下搜索 xadminx.py并注册, 这是xadmin的运行机制.
4.3.1注册users到xadmin
我们来一张效果图吧.
注册前:
注意: 这里的用户信息是django中管理后台者的用户信息, 并不是商城网站用户者的信息, 管理后台用户信息无论是django自带的admin还是xadmin, 都会自动生成的,
注册后:
我们这只把短信验证表的视图类注册到后台, 至于为什么不把商城用户的信息注册到后台, 我暂且也不知道, 等到老师再讲吧,
注意看左上角的慕学生鲜和右下角的llls_making, 这就是代码中:
这里实现的.不好意思, 慕学的慕写错了, 我这就改过来. 接下来我们看看这一块的效果
变成后:变更前: , 很明显就是把类视图的名字由原来的users -> 用户管理.
4.3.1注册goods
我们这里讲一下一个重点知识,在上面那个博客中的这一段代码:
# 在添加商品的时候可以添加商品图片
class GoodsImagesInline(object):
model = GoodsImage
exclude = ["add_time"]
extra = 1
style = 'tab'
inlines = [GoodsImagesInline] # 一对多模型中管理界面可以管理多个module
这一段代码是为了在添加商品的时候可以添加商品图片
其他商品类我们就不讲了, 因为都是xadmin的基础知识.
4.4.导入商品类别数据
我们做测试一定要大量的数据, 那么这些数据都是手动一个一个导入进去吗? 这不是很没效率, 别忘了, 人的脑子是用来想问题的, 而不是用来做重复的事的. python原来本来就是做自动化相关的, 我们用python来自动导入吧.
我本来想讲一下这一段代码怎么来的
# db_tools/data/import_category_data.py
#独立使用django的model
import sys
import os
#获取当前文件的路径(运行脚本)
pwd = os.path.dirname(os.path.realpath(__file__))
#获取项目的跟目录
sys.path.append(pwd+"../")
#要想单独使用django的model,必须指定一个环境变量,会去settings配置找
#参照manage.py里面就知道为什么这样设置了
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "MxShop.settings")
import django
django.setup()
结果出来的基本都是如何去用, 而都不会去纠结这些语句都是干嘛用的, 唉.... 实在找不到, 我们先照着模板用的吧.
代码的理解和书写, 自己独立完成吧, 我就不详细写了, 因为这都比较基础,
导入成功后, 我们点开一个数据看,
这里为什么图片没有显示, 只是一个名称, 这是因为还没有配置静态文件, django静态文件的配置详见: https://segmentfault.com/a/1190000004232816
在这里直接按照最顶层的博客教程做. 由于博客中的django版本和我们的不一样, 需要做一定的修改, urls改为
from django.views.static import serve
from VueShopProject.settings import MEDIA_ROOT
urlpatterns = [
url('xadmin/', xadmin.site.urls),
url(r'^ueditor/', include('DjangoUeditor.urls')),
url(r'media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}),
]
我们再次运行django, 看看图片显示出来了没有
图片显示正常!