Files
asset-management/assetapp/migrations/0001_initial.py
cnbugs a40a0137cf 初始提交:希姆计算硬件资产管理系统
功能:
- Django + MySQL + 深色主题
- 资产增删改查(含资产编号、BMC地址、设备位置、备注)
- Excel导入导出(分类自动创建)
- 设备分类管理
- 资产变更记录追踪
- 质保到期提醒
- 用户认证系统
- Docker部署支持
2026-04-25 08:04:51 +08:00

82 rader
5.4 KiB
Python

# Generated by Django 5.2.13 on 2026-04-24 10:33
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='Category',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=50, unique=True, verbose_name='分类名称')),
('description', models.CharField(blank=True, default='', max_length=200, verbose_name='描述')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
],
options={
'verbose_name': '设备分类',
'verbose_name_plural': '设备分类',
'ordering': ['name'],
},
),
migrations.CreateModel(
name='Asset',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('asset_number', models.CharField(db_index=True, max_length=50, unique=True, verbose_name='资产编号')),
('name', models.CharField(max_length=100, verbose_name='设备名称')),
('brand', models.CharField(blank=True, default='', max_length=50, verbose_name='品牌')),
('model', models.CharField(blank=True, default='', max_length=100, verbose_name='型号')),
('serial_number', models.CharField(blank=True, db_index=True, default='', max_length=100, verbose_name='序列号')),
('location', models.CharField(blank=True, default='', help_text='楼层/房间/区域', max_length=200, verbose_name='设备位置')),
('cabinet', models.CharField(blank=True, default='', max_length=50, verbose_name='机柜')),
('cabinet_position', models.CharField(blank=True, default='', help_text='U位', max_length=50, verbose_name='机柜位置')),
('ip_address', models.GenericIPAddressField(blank=True, null=True, verbose_name='IP地址')),
('purchase_date', models.DateField(blank=True, null=True, verbose_name='采购日期')),
('warranty_expire', models.DateField(blank=True, null=True, verbose_name='质保到期')),
('supplier', models.CharField(blank=True, default='', max_length=100, verbose_name='供应商')),
('responsible_person', models.CharField(blank=True, default='', max_length=50, verbose_name='负责人')),
('status', models.CharField(choices=[('in_use', '在用'), ('idle', '闲置'), ('maintenance', '维修中'), ('scrapped', '已报废')], default='in_use', max_length=20, verbose_name='状态')),
('remark', models.TextField(blank=True, default='', verbose_name='备注')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='创建时间')),
('updated_at', models.DateTimeField(auto_now=True, verbose_name='更新时间')),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='创建人')),
('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='assets', to='assetapp.category', verbose_name='设备分类')),
],
options={
'verbose_name': '硬件资产',
'verbose_name_plural': '硬件资产',
'ordering': ['-created_at'],
},
),
migrations.CreateModel(
name='AssetChangeLog',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('asset_number', models.CharField(db_index=True, max_length=50, verbose_name='资产编号')),
('action', models.CharField(choices=[('create', '创建'), ('update', '更新'), ('delete', '删除'), ('import', '导入'), ('export', '导出'), ('status_change', '状态变更')], max_length=20, verbose_name='操作类型')),
('field_name', models.CharField(blank=True, default='', max_length=50, verbose_name='变更字段')),
('old_value', models.TextField(blank=True, default='', verbose_name='旧值')),
('new_value', models.TextField(blank=True, default='', verbose_name='新值')),
('description', models.TextField(blank=True, default='', verbose_name='描述')),
('created_at', models.DateTimeField(auto_now_add=True, verbose_name='操作时间')),
('asset', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='change_logs', to='assetapp.asset', verbose_name='资产')),
('operator', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='操作人')),
],
options={
'verbose_name': '变更记录',
'verbose_name_plural': '变更记录',
'ordering': ['-created_at'],
},
),
]