DJango项目实例_资产管理系统01

原链接地址:http://www.liujiangblog.com/course/django/118

1、pycharm 创建django项目

2、settings设置中的数据库、语言:

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',      
        'NAME': 'cmdb',                  #数据库名
        'USER':'root',                   #登录名
        'PASSWORD':'gq86124.',           #密码
        'POST':'3306',                   #端口号
    }
}
LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

3、设置__init__.py     #使用mysql必须设置以下代码

import pymysql
pymysql.install_as_MySQLdb()

 

4、后台设计models.py

4.1.资产共有数据模型

from django.db import models
from django.contrib.auth.models import User 
# Create your models here.

class Asset(models.Model):
    """所有资产的共有数据表"""

    #资产类型选项
    asset_type_choice=(
        ('server','服务器'),
        ('networkdevice','网络设备'),
        ('storagedevice','储存设备'),
        ('securitydevice','安全设备'),
        ('software','软件资产'),
    )

    #资产状态
    asset_static=(
        (0,'在线'),
        (1,'下线'),
        (2, '未知'),
        (3, '故障'),
        (4, '备用'),
    )
    
    
    asset_type=models.CharField(choices=asset_type_choice,max_length=64,default='server',verbose_name='资产类型')
    asset_name=models.CharField(max_length=64,unique=True,verbose_name='资产名称')
    sn=models.CharField(max_length=64,unique=True,verbose_name='资产序列号')
    #TODO(外键设置):
    business_unit=models.ForeignKey('BusinessUnit',null=True,blank=True,verbose_name='所属业务线',
                                    on_delete=models.SET_NULL)
    stats=models.IntegerField(choices=asset_static,default=0,verbose_name='设备状态')
    #TODO(外键设置):
    manufacturer=models.Foreignkey('Manufacturer',null=True,blank=True,verbose_name='设备制造商',
                                   on_delete=models.SET_NULL)
    #ip地址字段
    manage_ip=models.GenericIPAddressField(null=True,blank=True,verbose_name='管理IP地址')
    #TODO(manytomanyfield):
    tags=models.ManyToManyField('Tag',blank=True,null=True,verbose_name='标签')
    #TODO(外键):
    admin = models.ForeignKey(User,null=True,blank=True,verbose_name='资产管理员',related_name='admin',
                              on_delete=models.SET_NULL)
    #TODO(外键):
    idc=models.ForeignKey('IDC',null=True,blank=True,verbose_name='所在机房',
                          on_delete=models.SET_NULL)
    #TODO(外键):
    contract=models.ForeignKey('Contract',null=True,blank=True,verbose_name='设备合同',
                               on_delete=models.SET_NULL)
    purchase_day=models.DateField(null=True,blank=True,verbose_name='购买日期')
    expire_day=models.DateField(null=True,blank=True,verbose_name='过保日期')
    price=models.FloatField(null=True,blank=True,verbose_name='价格')
    #TODO(外键)
    approved_by=models.ForeignKey(User,null=True,blank=True,verbose_name='批准人',
                                  related_name='approved_by',on_delete=models.SET_NULL)
    memo=models.TextField(null=True,blank=True,verbose_name='备注')
    c_time=models.DateTimeField(auto_now_add=True,verbose_name='批准日期')
    m_time=models.DateTimeField(auto_now_add=True,verbose_name='更新日期')
    
    def __str__(self):
        return '<%s>   %s'%(self.get_asset_type_display(),self.asset_name)
    
    class Meta:
        verbose_name='资产总表'
        verbose_name_plural='资产总表'
        ordering=['-c_time',]
    

说明:

导入django.contrib.auto.models内置的U

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值