跳转到主要内容

添加自动更新的特殊用户外键字段

项目描述

https://github.com/lambdalisue/django-author/actions/workflows/main.yml/badge.svg https://coveralls.io/repos/github/lambdalisue/django-author/badge.svg?branch=master

自动更新模型的作者和updated_by字段

此库用于在模型创建/更改时,自动使用request.user更新author和updated_by字段。

如果您太懒了,不想在每个模型中写author = models.ForeignKey(User, _('author'), related_name ...),只需在类的顶部添加@with_author装饰器即可。

安装

此库位于PyPI,因此您可以使用以下命令安装它

pip install django-author

或从github

pip install git+https://github.com/lambdalisue/django-author.git

用法

  1. 'author'添加到settings.py中的INSTALLED_APPS

  2. 如果您使用默认作者后端,请将'author.middlewares.AuthorDefaultBackendMiddleware'添加到您的MIDDLEWARE_CLASSES

  3. 将author和updated_by字段添加到您希望具有author和updated_by字段的模型中,或者使用以下方式使用@with_author装饰器

    from django.db import models
    from author.decorators import with_author
    
    @with_author
    class Entry(models.Model):
        title = models.CharField('title', max_length=50)
        body = models.TextField('body')
  4. 已完成。现在您已经自动更新了作者更新者字段

    如果您遇到问题,请参阅author_test目录中的使用示例。

  5. 如果您想禁止某些操作对更新者字段的修改,只需在调用save()之前设置instance._change_updated_by = False

设置

AUTHOR_BACKEND

后端类或字符串路径。后端用于在对象创建/更新时确定用户。

AUTHOR_CREATED_BY_FIELD_NAME

字段名称。此设置还影响由@with_author装饰器创建的字段名称。默认为‘author’

AUTHOR_UPDATED_BY_FIELD_NAME

字段名称。此设置还影响由@with_author装饰器创建的字段名称。默认为‘updated_by’

AUTHOR_DO_NOT_UPDATE_WHILE_USER_IS_NONE

当检测到用户为None时,不要更新作者更新者字段。默认为True

AUTHOR_MODELS

仅检查这些模型的信号。默认为None

AUTHOR_IGNORE_MODELS

不要检查这些模型的信号。默认为['auth.user', 'auth.group', 'auth.permission', 'contenttype.contenttype']

后端

默认后端使用thread_locals策略在信号调用中获取当前请求。

如果您想更改策略或任何其他内容,请创建自己的后端。

后端是一个具有get_user方法的类,用于确定当前用户。

AuthorDefaultBackend

默认后端。当未找到请求或创建/更新对象时,此后端返回None。

AuthorSystemUserBackend

系统用户后端。当未找到请求或创建/更新对象时,此后端返回系统用户。

系统用户通过get_system_user方法确定,默认为User.objects.get(pk=1)

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django-author-1.2.0.tar.gz (10.7 kB 查看哈希值)

上传时间

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面