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

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

  • 一、先放源码

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

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

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值