29 lines
791 B
Python
29 lines
791 B
Python
"""跨业务应用复用的抽象模型。"""
|
|
|
|
from django.conf import settings
|
|
from django.db import models
|
|
|
|
|
|
class TimeStampedModel(models.Model):
|
|
"""统一维护创建和更新时间,避免各业务模型重复声明。"""
|
|
|
|
created_at = models.DateTimeField("创建时间", auto_now_add=True)
|
|
updated_at = models.DateTimeField("更新时间", auto_now=True)
|
|
|
|
class Meta:
|
|
abstract = True
|
|
|
|
|
|
class UserOwnedModel(TimeStampedModel):
|
|
"""为用户私有数据提供显式归属;审计数据存在时禁止删除用户。"""
|
|
|
|
owner = models.ForeignKey(
|
|
settings.AUTH_USER_MODEL,
|
|
on_delete=models.PROTECT,
|
|
related_name="%(app_label)s_%(class)s_items",
|
|
verbose_name="所属用户",
|
|
)
|
|
|
|
class Meta:
|
|
abstract = True
|