美文网首页
Django 通用记录数据模型

Django 通用记录数据模型

作者: alue | 来源:发表于2024-06-10 23:27 被阅读0次

一些应用场景要求每个数据都要记录创建人、修改人。
笨方法是在前端调用接口时,获取调用人的信息,然后填入数据库。
这种方法很直观,但是每个数据都需要做这个重复的工作。

可否通过自定义模型的 save 方法,在保存之前,获取当前调用人的信息呢?
save 方法并没有提供这个参数,我们需要自己想办法通过中间件获取 request.user.

更简单的方式,是直接调用现成的第三方库,例如 django_currentuser


from django_currentuser.db.models import CurrentUserField

class BaseRecordModel(models.Model):  
    create_by = CurrentUserField(verbose_name='创建人', related_name='%(class)s_create_by')  
    create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')  
    update_by = CurrentUserField(on_update=True, verbose_name='修改人', related_name='%(class)s_update_by')  
    update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')  
    status = models.CharField(  
        max_length=1,  
        choices=[('1', '可用'), ('2', '不可用')],  
        null=True, blank=True,  
        verbose_name='可用'  
    )  
  
    class Meta:  
        abstract = True

只用定义个一个抽象类,后面需要记录的数据继承这个 model 即可实现数据留痕。

相关文章

网友评论

      本文标题:Django 通用记录数据模型

      本文链接:https://www.haomeiwen.com/subject/axswqjtx.html