Django框架学习14--admin优化xadmin

xadmin是对Django自带框架admin的优化,可以使得后台界面布局合理,美观。

一.Xadmin引入Django工程中

1.xadmin下载地址https://github.com/sshwsfc/xadmin

2.进入后下载Django版本对应的分支,下载后解压,将里边的xadmin文件夹拷贝到Django项目下新建的extra_apps包下

3.extra_apps右键-找到Mark Directory As-选择Sources Root,将设置为SourcesRoot

4.pip安装xadmin需要的库,需要的库都在解压的文件里requirements.txt有列出

  • django-crispy-forms>=1.6.0
  • django-import-export>=0.5.1
  • django-reversion>=2.0.0
  • django-formtools==1.0
  • future==0.15.2
  • httplib2==0.9.2
  • six==1.10.0

5.settings.py注册xadmin和crispy_forms两个app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'hello',
    'xadmin',#xamin新增
    'crispy_forms',#xamin新增
]

setttings.py中

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#新增以下两行
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

6.urls.py中新增到xadmin的路由

url(r'^xadmin/',xadmin.site.urls),

7.执行数据库同步操作

python manage.py makemigrations
python manage.py migrate

8.运行服务器,访问http://127.0.0.1:8000/xadmin/

xadmin使用登录账户可以使用以前admin时创建的账户

二 xadmin使用

xadmin的使用基本上与admin的使用没有区别,

步骤都是1.在models中定义数据模型2.定义视图函数3.urls.py中绑定视图函数访问规则,只是编写位置发生了部分变化

1.在extra_apps下的xadmin中找到models.py,新增student,models.py中已有代码不用管

class Student(models.Model):
    '''学生成绩表'''
    student_id = models.CharField(max_length=30, verbose_name="学号")
    name = models.CharField(max_length=30, verbose_name="姓名")
    age = models.IntegerField(verbose_name="年龄")
    score = models.IntegerField(verbose_name="分数")
    gender_choices = (("M", "男"), ("F", "女"))#性别做成下拉选择框样式
    gender = models.CharField(max_length=10,
                              choices=gender_choices,  # 设置性别选项
                              verbose_name="性别",
                              default="")

    class Meta:
        verbose_name = "学生成绩"
        verbose_name_plural = verbose_name

2.adminx.py中注册student


import xadmin#导入xadmin
from .models import  Student

class ControlStudent(object):#继承自object
    # 显示的字段
    list_display = ('student_id', 'name', 'age', 'score')
    # 搜索条件
    search_fields = ('name',)

    # 每页显示10条
    list_per_page = 10
# 注册Student表
xadmin.site.register(Student, ControlStudent)


3.执行数据库同步操作

E:\Django_project\helloword>python3 manage.py makemigrations
Migrations for 'hello':
  hello\migrations\0011_auto_20191213_1047.py
    - Alter field auth on book
Migrations for 'xadmin':
  extra_apps\xadmin\migrations\0004_student.py
    - Create model Student

E:\Django_project\helloword>python3 manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, hello, sessions, xadmin
Running migrations:
  Applying hello.0011_auto_20191213_1047... OK
  Applying xadmin.0004_student... OK

4.访问xadmin可以看到有新增student表

 

如果一个字段设置了choices属性,在模版中如果我要显示这个字段,比如用户的性别,只需设置2个参数选项。
在django模版系统就会将它默认解析为一个下拉菜单,这样对于一个静态的下拉菜单式很方便的。
**gender_choices参数定义一个元祖类型,里面有2个参数,一个是value值可以选择,如“M”,另外一个是显示的内容display_name,如“男”

gender字段中保存了两个信息,一个为value,一个display_name,取value时直接用st.gender即可,如果要取display_name用st.get_gender_display()这个函数即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值