zoukankan      html  css  js  c++  java
  • Djiango-建立模型抽象基类

    创建一个抽象模型基类

     然后

    ’base_model.py

    from django.db import models
    from datetime import date
    
    class BaseModel(models.Model):
        '''模型抽象基类'''
        create_time = models.DateField(auto_now_add=True, verbose_name='创建时间')  # auto_now_add= 创建时自动添加当前时间
        update_time = models.DateField(auto_now=True, verbose_name='修改时间')  # auto_now= 修改是自动添加当前时间
        is_delete = models.BooleanField(default=False, verbose_name='删除标记')
    
        class Meta:
            # 说明是一个抽象模型类
            abstract=True  # 没有这句会报错

     在其它的models.py中导入和继承

    如 user.models.py

    from django.db import models
    from django.contrib.auth.models import AbstractUser
    from db.base_model import BaseModel
    # Create your models here.
    
    
    class User(AbstractUser, BaseModel):  # 继承模型抽象基类 
        '''用户模型类'''
    
        class Meta:
            db_table = 'df_user'
            verbose_name = '用户'
            verbose_name_plural = verbose_name
    
    
    class Address(BaseModel):
        '''地址模型类'''
        user = models.ForeignKey('User', verbose_name='所属账户')
        receiver = models.CharField(max_length=20, verbose_name='收件人')
        addr = models.CharField(max_length=256, verbose_name='收件地址')
        zip_code = models.CharField(max_length=6, null=True, verbose_name='邮政编码')
        phone = models.CharField(max_length=11, verbose_name='联系电话')
        is_default = models.BooleanField(default=False, verbose_name='是否默认')
    
        class Meta:
            db_table = 'df_address'
            verbose_name = '地址'
            verbose_name_plural = verbose_name
  • 相关阅读:
    RabbitMQ笔记-死信队列与延时队列
    设计模式-迭代器模式
    RabbitMQ笔记-Demo(C#)
    RabbitMQ笔记-消息追踪【未完成】
    RabbitMQ笔记-安装&命令
    RabbitMQ笔记-Exchange、Queue、Message详细说明
    MySQL笔记-MVCC【没写】
    MySQL笔记-基础知识
    多线程笔记-基础知识
    在Redis中进行分页排序查询【转】
  • 原文地址:https://www.cnblogs.com/yifengs/p/11574174.html
Copyright © 2011-2022 走看看