django实战总结2
https://www.jianshu.com/p/9b3bfe934511 https://www.cnblogs.com/1Q84mi/p/xadmin002.html https://blog.csdn.net/killersdz/article/details/89018834 https://www.cnblogs.com/aaronthon/p/9183442.html 这是因为你在编写userprofile之后才运行的migrate,
应该在编写userprofile之前运行migratge才会生成auth_user表,
如果你直接写了userprofile的model然后运行migrate,
就会直接不生成auth_user,
你根据课程的节奏来就不会这样了,
不要随意跳过章节
settings.py
from apps import users #users是我建立的一个app
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(1, os.path.join(BASE_DIR, 'extra_apps')) INSTALLED_APPS = [
'xadmin',
'crispy_forms',
'users',
] #扩展usermodel
AUTH_USER_MODEL = 'users.UserProfile' #mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'jpdata', # 数据库
'USER': 'root', # 用户名
'PASSWORD': '', # 密码
'HOST': '127.0.0.1',
}
} #中文
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False #不知道
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
urls.py
path('xadmin/', xadmin.site.urls),
adminx.py
# 样式开启和头脚设定 class BaseSetting(object):
enable_themes = True
use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting)
----------------------------------------------------------------------
apps设定
1.创建一个users的app
models.py
from django.db import models
from django.contrib.auth.models import AbstractUser class UserProfile(AbstractUser):
jifen = models.fields.IntegerField(verbose_name=u"积分", default=0)
# birday = models.DateField(verbose_name=u"生日", null=True, blank=True)
# gender = models.CharField(max_length=8, choices=(("male", u"男"), ("female", u"女")), default="female")
# address = models.CharField(max_length=100, default=u"")
# mobile = models.CharField(max_length=11, null=True, blank=True)
# image = models.ImageField(upload_to="image/%Y/%m", default=u"image/default.png", max_length=100) class Meta:
verbose_name = "用户信息"
verbose_name_plural = verbose_name def __str__(self):
return self.username
adminx.py[新建]
import xadmin
from .models import UserProfile class UserProfileAdmin(object):
# def save_model
list_display = ['username', 'first_name', 'last_name', 'email', 'is_staff', 'is_active', 'date_joined',
'last_login',
'jifen']
list_filter = ['username']
# data_charts= 'drivers-license-o'
search_fields = ['id', 'username']
# model_icon = 'fa fa-user-o'
list_editable = ['jifen'] # 先注销模块,再注册
xadmin.site.unregister(UserProfile)
xadmin.site.register(UserProfile, UserProfileAdmin) # 设计左侧菜单
class GlobalSetting(object): #名称不能改
def get_site_menu(self): #名称不能改
return [
{
'title': '测试的',
'icon': 'fa fa-bar-chart-o',
'menus': (
{
'title': '测试子菜单1', #这里是你菜单的名称
'url': '/xadmin/test_view', #这里填写你将要跳转url
'icon': 'fa fa-cny' #这里是bootstrap的icon类名,要换icon只要登录bootstrap官网找到icon的对应类名换上即可
},
{
'title': '测试子菜单2',
'url': 'http://www.taobao.com',
'icon': 'fa fa-cny'
}
)
}
] site_title = "后台管理系统"
site_footer = "管理系统@admin"
menu_style = "accordion" #注册你上面填写的url
from .views import TestView #从你的app的view里引入你将要写的view,你也可以另外写一个py文件,把后台的view集中在一起方便管理
xadmin.site.register_view(r'test_view/$', TestView, name='for_test') #注册GlobalSetting
from xadmin.views import CommAdminView
xadmin.site.register(CommAdminView, GlobalSetting)
apps.py
# -*- coding: utf-8 -*-
from django.apps import AppConfig class UsersConfig(AppConfig):
name = 'users'
verbose_name = u'用户管理'
__init__.py
default_app_config = "users.apps.UsersConfig"
views.py
from django.shortcuts import render # Create your views here.
from xadmin.views import CommAdminView class TestView(CommAdminView):
def get(self, request):
context = super().get_context() # 这一步是关键,必须super一下继承CommAdminView里面的context,不然侧栏没有对应数据,我在这里卡了好久
title = "测试子菜单123" # 定义面包屑变量
context["breadcrumbs"].append({'url': '/cwyadmin/', 'title': title}) # 把面包屑变量添加到context里面
context["title"] = title # 把面包屑变量添加到context里面 # 下面你可以接着写你自己的东西了,写完记得添加到context里面就可以了
#.........
return render(request, 'users/../../templates/users/test.html', context) # 最后指定自定义的template模板,并返回context
大体结构

django版本2.2.1
ordering = ['-click_nums'] # 进入xadmin页面将某个字段倒序排列
readonly_fields = ['click_nums'] # 将某个字段以只读形式
exclude = ['fav_nums'] # 不显示某个字段
django实战总结2的更多相关文章
- 从零开始部署Django生产环境(适用:《跟老齐学Python Django实战》)
<跟老齐学Python Django实战>作为市面上少有的Django通俗实战书籍,给了我学习Django很大的帮助.作为一名新入门的菜鸟,全书我重复练习了至少三遍,每次都有新的收获. 前 ...
- django 实战 - eLeave Form
需求: 实现请假单的电子审批 1. 支持国际化 2. 支持模型级别的访问记录 here we go: 这里会写一系列的文章,来记录我实战的过程,由于接触django没多久,难免有疏漏之处,望拍砖不要太 ...
- Django实战(一)-----用户登录与注册系统6(session会话、注册视图)
因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的. 通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于 ...
- Django实战(一)-----用户登录与注册系统3(前端页面、登录视图)
基本框架搭建好了后,我们就要开始丰富页面内容了.最起码,得有一个用户登录的表单不是么?(注册的事情我们先放一边.) 一. 原生HTML页面 删除原来的login.html文件中的内容,写入下面的代码: ...
- Django实战(二)之模板语言
该实战教程基于菜鸟教程,菜鸟教程可参考:http://www.runoob.com/django/django-template.html 模板语法,每个框架都有其支持的模板语法,Django的模板语 ...
- 5、Django实战第5天:首页和登录页面的配置
从这天开始我们需要用到前端源码,需要的朋友可以进行小额打赏(15元),打赏二维码在博客的右侧,打赏后可以凭截图联系463951510@qq.com,博主收到邮件后会立即回复发送所有源码素材,实战过程中 ...
- python框架Django实战商城项目之工程搭建
项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...
- python框架Django实战商城项目之用户模块创建
创建用户APP 整个项目会存在多个应用,需要存放在一个单独的文件包了,所以新建一个apps目录,管理所有子应用. 在apps包目录下穿件users应用 python ../../manage.py s ...
- django实战商城项目注册业务实现
设计到的前端知识 项目的前端页面使用vue来实现局部刷新,通过数据的双向绑定实现与用户的交互,下面来看一下需求,在用户输入内容后,前端需要做一些简单的规则校验,我们希望在在用户输入后能够实时检测,如果 ...
- Django 实战 之 搭项目(正在更新)
系统:win10 python版本:python 3.5 工具: pyCharm 3.4 professional 源码来源:https://github.com/ouzhigang/django-o ...
随机推荐
- Python正则提取数据单引号内数据,并判断是否是空列表(是否提取到数据)
#coding=utf- import re string1="asdfgh'355'dfsfas" string2="fafafasfasdfasdf" pa ...
- php 实现密码错误三次锁定账号10分钟
/** * 登录 * 1.接收数据 * 2.正则判断接收到的数据是否合理 * 3.根据用户名获取用户数据 * 获取到数据 -> 继续执行 * 没有获取到数据 -> 提示:用户名密码错误 * ...
- SSM自测错题解析
试题解析:spring 中bean的作用域有:singleton.session.prototype.request.global Session 试题解析:使用import导入子元素需要用prope ...
- pycharm注册使用
先在PyCharm官网下载安装包 链接:https://www.jetbrains.com/pycharm/download/#section=linux 选择平台为Linux,可以看到当前版本为20 ...
- webuploader+asp.net如何实现分片+断点续传
文件夹数据库处理逻辑 public class DbFolder { JSONObject root; public DbFolder() { this.root = new JSONObject() ...
- npm 安装全局包 不是内部或外部命令的问题
场景: npm已经安装成功 ,通过npm install -g 安装的 全局包 提示不是内部或外部命令 第一步: npm list -g --depth=0:查看npm全局包的路径,和有哪些安装包 ...
- python写一个随机点名软件
最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...
- OpenStack RPC框架解析
1 消息队列Rabbitmq介绍 Rabbitmq的整体架构图 (1)Rabbitmq Server:中间那部分就是Rabbitmq Server,也叫broken server,主要是负责消息的传 ...
- SQL Server 2008R2安装
SQL Server 2008详细安装过程及配置 https://www.cnblogs.com/rewwensoftware/p/9580697.html SQL Server 2008R2 百 ...
- Linux 修改时区的办法
Linux修改时区的正确方法 CentOS和Ubuntu的时区文件是/etc/localtime,但是在CentOS7以后localtime以及变成了一个链接文件 [root@centos7 ~]# ...