为用户扩展外键字段。支持“auto-now”和“auto-now”``
django-userel的Python项目详细描述
userel是用户模型的扩展外键。它添加auto_now和auto_now_add以设置当前 自动访问用户。
安装
sudo pip install django-userel
或:
sudo pip install git+https://github.com/lambdalisue/django-userel.git#egg=django-userel
如何使用
- 将'userel'附加到INSTALLED_APPS
- 将“userel.middlewares.userelDefaultBackendMiddleware”添加到MIDDLEWARE_CLASSES 如果使用默认的userel backend
微型博客应用程序示例
models.py:
from django.db import models from django.contrib.auth.models import User from userel.fields import UserelField class Entry(models.Model): PUB_STATES = ( ('public', 'public entry'), ('protected', 'login required'), ('private', 'secret entry'), ) pub_state = models.CharField('publish status', choices=PUB_STATES) title = models.CharField('title', max_length=140) body = models.TextField('body') created_by = UserelField('created by', related_name='entries_create', auto_now_add=True) updated_by = UserelField('updated_by', related_name='entries_update', auto_now=True)
设置
- 用户后端
- 后端的类或字符串路径。后端用于确定创建/更新对象的时间。
后端
默认后端使用thread_localsstorategy在信号调用中获取当前请求。
如果你想改变策略或者其他什么,创建你自己的后端。
后端是一个有get_user方法来确定当前用户的类。
- 用户默认后端
- 默认后端。如果找不到请求或匿名用户创建/更新对象,此后端将不返回任何内容。
- 用户列表包
系统用户后端。当找不到请求或匿名用户创建/更新对象时,此后端返回系统用户。
系统用户由get_system_user方法确定,默认值为User.objects.get(pk=1)