添加自动更新的特殊用户外键字段
项目描述
自动更新模型的作者和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 |