添加自动更新的特殊用户外键字段
项目描述
自动更新模型的作者和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
用法
- 将'author'添加到settings.py中的INSTALLED_APPS 
- 如果您使用默认作者后端,请将'author.middlewares.AuthorDefaultBackendMiddleware'添加到您的MIDDLEWARE_CLASSES 
- 将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')
- 已完成。现在您已经自动更新了作者和更新者字段 - 如果您遇到问题,请参阅author_test目录中的使用示例。 
- 如果您想禁止某些操作对更新者字段的修改,只需在调用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的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 0c45d986cfe5eb856e968e2c88b552854d3d4e0b69bbca578c6bb5aae06cbd09 | |
| MD5 | 23cd3dac7b65adf3370eebb343489681 | |
| BLAKE2b-256 | a3215f130f2be0de1f462bf58379d9f0c315e76c36c3d5c29fa5aed99fc0b7cd |