Django后台管理系统-----xadmin的入门和进阶 -1入门篇

入门篇

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

配置

首先创建我们的Django项目xadmin_Usage,创建好目录apps(在apps文件夹里创建两个新的app users和testapp),把在网上下载好的xadmin(网上的可能有问题,可以直接到我的git上clone)拖拽到extra_apps文件夹下。

接下来我们设置settings,首先设置语言等

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

然后将使用的app添加到INSTALLED_APPS中

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',
    'users',
    'testapp',
]

接下来设置数据库,我们使用的是mysql

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': "xadminUsage",
        'USER': "root",
        'PASSWORD': "xxxxxxxx",
        'HOST': "127.0.0.1",
        "OPTIONS":{"init_command":"SET default_storage_engine=INNODB;"}
    }
}

设置基本完成。

现在我们把数据库的表生成一下,把我给到的model代码拷贝到你的项目中。

# _*_ coding: utf-8 _*_

from django.db import models
from django.contrib.auth.models import AbstractUser

from datetime import datetime


class UserProfile(AbstractUser):
    name = models.CharField(max_length=30, null=True, blank=True, verbose_name="姓名")
    birthday = models.DateField(null=True, blank=True, verbose_name="出生年月")
    gender = models.CharField(max_length=6, choices=(("male", u"男"), ("female", "女")), default="female",
                              verbose_name="性别")
    mobile = models.CharField(null=True, blank=True, max_length=11, verbose_name="电话")
    email = models.EmailField(max_length=100, null=True, blank=True, verbose_name="邮箱")
    add_time = models.DateTimeField(default=datetime.now, verbose_name="添加时间")

    class Meta:
        verbose_name = '用户_管理'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

#------------------------------------------------------------------------------------

# _*_ coding: utf-8 _*_

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200, verbose_name='问题')
    pub_date = models.DateTimeField(verbose_name='时间')

    def __str__(self):
        return self.question_text

    class Meta:
        verbose_name = '问题_管理'
        verbose_name_plural = verbose_name


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200,verbose_name='选择')
    votes = models.IntegerField(default=0,verbose_name='投票')

    def __str__(self):
        return self.choice_text

    class Meta:
        verbose_name = '选择_管理'
        verbose_name_plural = verbose_name

还要在settings中加上(重写用户模型一定要加上这条设置)

AUTH_USER_MODEL = 'users.UserProfile' 

接下来在manager.py Task 中使用 makemigrations 和migrate 生成表。

最后配置 url(r'^xadmin/', xadmin.site.urls),

现在xadmin 就基本完成 我们可以manager.py Task 中createsuperuser后访问一下http://127.0.0.1:8000/xadmin/(暂时是空的但可以访问)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

管理类数据 

先在每个app目录里新建名为adminx的py文件 

如下绑定好类和对应的管理数据类(举例testapp)

# _*_ coding: utf-8 _*_ 

import xadmin
from .models import Question, Choice


class QuestionAdmin(object):
    pass


class ChoiceAdmin(object):
    pass


xadmin.site.register(Question, QuestionAdmin)
xadmin.site.register(Choice, ChoiceAdmin)

并在__init__文件中设置default_app_config,例

default_app_config= 'testapp.apps.TestappConfig'

完成这步设置就可以在xadmin的菜单栏看到我们的类了.

单个类的数据管理分为这几个部分。

在刚刚生成的数据管理类里添加如下代码进行对应的单个类管理

class QuestionAdmin(object):
    list_display = ['question_text', 'pub_date']  # 添加table显示的列
    search_fields = ['question_text']  # 要顶部查询的列
    list_filter = ['pub_date']  # 可用顶部过滤器筛选的列

单个类在xadmin左侧菜单栏的名称显示在apps中设置,添加verbose_name

# _*_ coding: utf-8 _*_

from django.apps import AppConfig


class TestappConfig(AppConfig):
    name = 'testapp'
    verbose_name = 'testapp管理' #左侧菜单栏显示

类中的显示信息名和单条信息名也是通过verbose_name设置,在model中我们已经设置完成,现在显示如图。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

全局管理 

# _*_ coding: utf-8 _*_ 

import xadmin
from xadmin import views


class BaseSetting(object):
    # 设置主题
    enable_themes = True
    use_bootswatch = True


class GlobalSetting(object):
    site_title = 'xadminUsage后台管理系统title'
    site_footer = 'xadminUsage后台管理系统footer'
    menu_style = "accordion" #收起菜单


xadmin.site.register(views.BaseAdminView,BaseSetting)
xadmin.site.register(views.CommAdminView,GlobalSetting)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值