django 11
xadmin
链接: https://pan.baidu.com/s/1xrr8ymJTkXNt6oyzbFCgxQ 密码: gmc3
首先下载xadmin, 将下载好的压缩包放到安装python的scripts 文件中,我的路径为:D:\Python学习3.6\Scripts
接着打开cmd,并进入这个路径,然后通过pip安装 xadmin
安装完成之后可以将scripts中的xadmin压缩包剪切到别的位置并解压,现在我们创建一个新的django项目,然后在根目录下创建一个文件夹,将我们解压好的xadmin中的xadmin文件夹复制粘贴到django新建的文件夹中。
然后我们在settings中配置:
首先在APP要添加xadmin:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'huazai.apps.HuazaiConfig',
'xadmin',
'crispy_forms',
]
接着配置我们的数据库,这次我们直接引用我们之前创建的手机电脑产品数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'NAME':'P7_shopDB',
'USER':'root',
'PASSWORD':'gyzswan',
'HOST':'localhost',
'PORT':3306,
}
}
这里需要填写自己创建的数据库名及数据库用户和密码。
然后我们设置文字及时间,使我们的xadmin后台管理显示中文及时间:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
这里我们设置中文及上海时间。
然后修改urls:
from django.urls import path
import xadmin
urlpatterns = [
# path('admin/', admin.site.urls),
path('vip/', xadmin.site.urls),
]
注意引包。
然后将我们之前创建的类别模型和产品模型拿过来并修改一下:
from django.db import models
# Create your models here.
class Category(models.Model):
#类别模型
name=models.CharField(max_length=20,null=False)
parent=models.ForeignKey('Category',on_delete=None,null=True)
def __str__(self):
return self.name
class Produce(models.Model):
#产品
name=models.CharField(max_length=20)
price=models.FloatField()
create_date=models.DateTimeField()
category=models.ForeignKey('Category',on_delete=None,null=True)
status_choices = (('0',u'未审核'),
('1',u'已审核'),
('2',u'已下架'),
)
#前面定义了选项,这里要创建一个字段用到前面的选项
status = models.CharField(choices=status_choices,
max_length=32,null=True,
default='0')
def __str__(self):
return self.name
__str__() 为一个魔术方法,定义了这个方法,就会打印我们return的数据,将self.name 即类别/产品名打印到页面上。
我们在产品类别中创建了一个选项,定义了三个状态,默认为未审核状态。
然后进行数据迁移,在数据库中创建表。
然后在admin中添加类,将我们模型当中的各个信息显示出来:
from django.contrib import admin
import xadmin
# Register your models here.
from huazai.models import Category,Produce
class ArticleAdmin(object):
list_display = ('id','name','price','create_date','category','status')
list_display_links = None
#在线修改
list_editable = ('price','status')
#右侧筛选
list_filter = ('name','create_date',)
#搜索框筛选
search_fields = ('name',)
#分页
list_per_page = 5
#排序
ordering = ('id',)
date_hierarchy = ('create_date')
fieldsets = [
('标题栏',{'fields':['name','price','create_date']}),
('内容栏',{'fields':['category','status']}),
]
xadmin.site.register(Category)
xadmin.site.register(Produce,ArticleAdmin)
定义类ArticleAdmin ,参数为object
list_display 为要显示的值, 为元组
设置list_display_links 的值为none,为元组
list_editable 为可以修改的值,为元组
list_filter 为筛选值,你可以根据哪些值进行筛选,选出你想要的值,为元组
search_fields 为搜索框筛选,为元组
list_per_page 为分页,可以选择按多少个产品进行分页
date_hierarchy 显示详细日期
fieldsets 为当添加一个产品或者类别时,会分栏显示,每个栏显示填写的内容,这里需注意,如果要显示时间,在创建模型的时候时间不能自动填写(即不能设置为自动填写当前时间)。
然后我们需要将我们在admin写的类与引用model的类填入到register中。
现在我们来创建superuser,用于登录到后台并进行管理。
首先run manager.py task。
然后输入migrate 命令
最后输入createsuperuser
现在我们依次填写用户名,邮箱,密码
这里邮箱可以不填,但是如果要填写,必须保证格式正确,密码需大于8位。
现在我们将django项目运行,打开网页localhost:8000/vip 输入我们的用户与密码,即可进入:
现在我们在数据库里编写一些数据,然后点开produce
这里需注意,要将我们在admin中的list_display_links = None 注掉,否则id不可点击
现在我们点击添加产品:
即可添加产品,现在一个简易的后台管理已完成。