在Django4.03中使用自带的Admin管理后台创建部门表和员工表

2023-11-11

这两天,想帮公司搞个简单的员工管理系统,折腾了两天,查了很多方法,也走了很多弯路,本身自己学艺不精,不过还好,也折腾出来了,现在发表一下,自己的源码和遇到的坑,希望能帮助大家。

  • 一、先放源码

djangoProject3/settings.py

INSTALLED_APPS = [
    'users.apps.UsersConfig',
    'department.apps.DepartmentConfig',

]

users/__init__.py

default_app_config = 'users.apps.UsersConfig'

 apps/users/admin.py

from django.contrib import admin
from .models import UserProfile


# Register your models here.
@admin.register(UserProfile)
class AdminUserProfile(admin.ModelAdmin):
    list_display = ['name']

apps/users/apps.py 

from django.apps import AppConfig


class UsersConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'users'
    verbose_name = '员工管理'

users/models.py 

from django.db import models


# 员工信息表
class UserProfile(models.Model):
    user_id = models.CharField(unique=True, max_length=30, verbose_name='员工编号')
    # 姓名可以为空是为了用户登陆的时候,只用手机号+验证码登陆,不报错
    name = models.CharField(max_length=30, verbose_name='员工姓名', null=True, blank=True)
    department = models.ForeignKey(to="department.Departments", to_field='dep_name', on_delete=models.CASCADE,
                                   related_name='department_id', verbose_name='部门名称')
    join_time = models.DateTimeField(verbose_name='入职日期', null=True, blank=True)
    birthday = models.DateTimeField(verbose_name='出生日期', null=True, blank=True)
    user_type = models.CharField(max_length=10, choices=(('DL', '生产员工'), ('IDL', '管理员工')),
                                 default='DL', verbose_name='员工类型')
    gender = models.CharField(max_length=10, choices=(('girl', '女'), ('boy', '男')),
                              default='girl', verbose_name='性别')
    mobile = models.CharField(max_length=11, verbose_name='手机号')
    email = models.EmailField(max_length=100, null=True, blank=True, verbose_name='邮箱')
    add_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')

    class Meta:
        db_table = 'users_userprofile'
        verbose_name = '员工信息表'
        verbose_name_plural = verbose_name


# 用户输入的验证码
class VerifyCode(models.Model):
    code = models.CharField(max_length=10, verbose_name='验证码')
    # 1:邮箱验证,2:手机短信验证
    verify_type = models.SmallIntegerField(verbose_name='验证码类型')
    mobile = models.CharField(max_length=11, verbose_name='手机号')
    add_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')

    class Meta:
        verbose_name = '验证码'
        verbose_name_plural = verbose_name

 department/__init__.py

department/admin.py 

from django.apps import AppConfig


class DepartmentConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'department'
    verbose_name = '部门管理'

 

 

from django.db import models

departments = (
    ('注塑部', '注塑部'),
    ('移印部', '移印部'),
    ('包装部', '包装部'),
    ('采购部', '采购部'),
    ('货仓部', '货仓部'),
    ('品质部', '品质部'),
    ('货仓部', '货仓部'),
    ('人事部', '人事部'),
    ('行政部', '行政部'),
    ('电脑部', '电脑部'),
    ('维修部', '维修部'),
    ('超声部', '超声部')
)


# 部门表
class Departments(models.Model):
    dep_id = models.CharField(max_length=30, verbose_name='部门编号', unique=True)
    dep_name = models.CharField(choices=departments, default='1', max_length=30, verbose_name='部门名称', unique=True)
    dep_leader = models.CharField(max_length=20, verbose_name='部门主管')
    dep_position = models.CharField(max_length=20, verbose_name='部门位置')
    dep_phone = models.CharField(max_length=20, verbose_name='部门电话')
    add_time = models.DateTimeField(auto_created=True, verbose_name='创建时间')
    update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间')

    class Meta:
        verbose_name = '部门信息表'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.dep_name

这里,最核心的重要部分,是下图的红框处,具体意思,就自己查一下了

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Django4.03中使用自带的Admin管理后台创建部门表和员工表 的相关文章

随机推荐

  • vue3使用高德地图,自定义点标记、默认点聚合样式、点击点标记获取信息

    1 需求 根据不用的类型和经纬度展示不同的自定义点标记 点标记太多 使用点聚合优化 参考 https blog csdn net qq 39157025 article details 120287561 2 在index html使用CD
  • Java学习笔记18——接口

    接口 接口概述 接口的特点 新建接口 创建一个实现类 Demo测试 总结 接口的成员特点 成员变量 构造方法 成员方法 类和接口的关系 类和类的关系 类和接口的关系 接口和接口之间的关系 抽象类与接口之间的区别 成员区别 关系区别 设计理念
  • c#基础知识---集合之队列

    队列 Queue 代表了一个先进先出的对象集合 当您需要对各项进行先进先出的访问时 则使用队列 当您在列表中添加一项 称为入队 当您从列表中移除一项时 称为出队 Queue 类的方法和属性 下表列出了 Queue 类的一些常用的 属性 属性
  • MySQL进阶(终篇)

    无知的我正在复习MySQL进阶知识 笔记特点是 我重新整理了涉及资料的一些语言描述 排版 而使用了自己比较容易理解的描述 同样是回答了一些常见关键问题 如果有遇到有任何无法进展问题或者疑惑的地方 应该在讨论区留言 或者 其他途径以寻求及时的
  • [开发工具使用基础-vs2013] 增加外部文件到项目工程

    此文适合于在vs2013中入门C 编程的人员借鉴 主要功能是添加外部文件 比如你网上下载的 cpp文件和 h头文件 到本项目工程 过程演示 1 新建一个C 空项目NewProgram 项目名自取 对于你的话就是你自己的项目了 完成后解决方案
  • Unity资源管理——使用UnityWebRequest从云端下载Assetbundle包

    1 环境 基于Unity2018 2 2 思路 1 使用UnityWebRequest Get方法去获取AB包 2 在协程中返回UnityWebRequest实例对象的SendWebRequest方法返回值 3 当UnityWebReque
  • wpf 保存图片到任意格式jpg,png,bmp

    private void ExportBtn Click object sender RoutedEventArgs e SaveFileDialog saveFileDialog new SaveFileDialog saveFileDi
  • nodejs中文教程-windows下nodejs开发环境的安装与配置

    么是Node js 还服务器端javascript 对于这个概念我在这篇文章不做解释 可以自己去搜索了解下 服务器端js不是新技术 只是最近的node js的火爆让他爆发了 我会在以后的文章里解释什么是node js 这里只是纯粹的搭建 连
  • HarmoneyOS鸿蒙系统零代码编程入门

    文章目录 前言 学习资源网址 工具以及基本环境准备 搭建HarmonyOS项目 申请成为华为开发者 实现 您好 世界 入门程序 前言 2021年6月3日 华为终于推出了HarmoneyOS 即鸿蒙操作系统公测 着实振奋人心 分布式操作系统
  • Linux学习篇 1.Linux的磁盘规划

    历时1个月的学习 对Linux终于小有了解 初步可以做些操作了 同时对Linux有了更深的理解 以前没接触的时候觉得高不可攀 经过一段时间的学习才发现 原来也没想象中的那么难 哈哈 独乐乐不如群乐乐 下面是我以做笔记的方式写的文章 有些生硬
  • 用py写一个时间盲注的脚本(初学向)

    用py写一个时间盲注的脚本 1 首先我们要清楚时间盲注的特点是利用了sql中sleep这个函数 借助的是响应时间不同来判断构造语句的对错 那么我们主要思路就要通过记录响应时间来执行一系列操作 下面是我写的一个简单脚本 2 import re
  • 告诉你如何应对HR索要薪资证明!

    有些企业的HR会要求求职者提供薪资证明 尤其是对于 骑驴找马 的求职者 HR不便于进行背景调查 更倾向于让求职者提供薪资证明 面对这种情况 根据前程无忧论坛的调查数据显示 有26 的受访者愿意提供薪资证明 其余的受访者要么拒绝提供 要么直接
  • 基于SpringBoot开发的停车位管理系统(调用百度地图api)

    文章目录 项目介绍 主要功能截图 前台 后台 部分代码展示 设计总结 项目获取方式 作者主页 超级无敌暴龙战士塔塔开 简介 Java领域优质创作者 简历模板 学习资料 面试题库 关注我 都给你 文末获取源码联系 项目介绍 基于SpringB
  • spring security免登录动态配置方案2

    序 之前有篇文章讲了怎么进行免登录动态配置的方案 动用了反射去实现 有点黑魔法的味道 这里再介绍另外一种方案 permitAll spring security config 4 2 3 RELEASE sources jar org sp
  • 巴菲特致股东的一封信:2011年

    原文请参考 http www berkshirehathaway com letters 2014ltr pdf 学习心得 全文如下 致伯克希尔哈萨维的股东 2011年我们的A股和B股每股账面价值增长了4 6 在过去47年 即现任管理层就职
  • C语言指针

    1 指针的概念 C程序中变量的值都是存储在计算机内存特定的储存单元中的 内存中的每个单元都有唯一的的地址 就像街区中的房子都有唯一的地址 宾馆中的房间都有唯一的编号一样 那么如何获取这个地址呢 这就要用到取地址运算符 即 计算机把整个内存条
  • Unity的C#编程教程_39_循环语句挑战:计数程序

    设计一个累计程序 每3秒钟计数 1 达到一个随机生成的上限时 累计停止 方法一 using System Collections using System Collections Generic using UnityEngine publ
  • 基于STM32的0.96寸OLED屏滚动显示长字符

    文章目录 一 OLED屏的滚屏命令 1 1 禁用滚动 2Eh 1 2 启用滚动 2Fh 1 3 设置水平左右滚动 1 4 设置垂直和水平滚动 二 使用OLED屏滚动显示长字符 1 对显示文字进行取模 2 main函数 3 显示长字符函数 4
  • Vue3头像(Avatar)

    效果如下图 在线预览 APIs 参数 说明 类型 默认值 必传 shape 指定头像的形状 circle square circle false size 设置头像的大小 number large small default Respons
  • 在Django4.03中使用自带的Admin管理后台创建部门表和员工表

    这两天 想帮公司搞个简单的员工管理系统 折腾了两天 查了很多方法 也走了很多弯路 本身自己学艺不精 不过还好 也折腾出来了 现在发表一下 自己的源码和遇到的坑 希望能帮助大家 一 先放源码 djangoProject3 settings p