一个简单的django应用程序,它会给你一个userforeignkey模型字段。
django-userforeignke的Python项目详细描述
django userforeignkey是一个简单的django应用程序,它将为django模型提供一个userforeignkey模型字段。 此字段扩展了常规的foreignkey model字段,并可以选择自动将当前登录的用户设置为 插入和/或更新。
目前,支持django 1.11(python 2.7,python 3.4+)、django 2.0(python 3.4+)和django 2.1(python 3.5+)。
如果您需要对不安全和不推荐的django 1.8(可能是1.9和1.10)的支持,请返回0.2.1版本。
还有一个video tutorial on YouTube显示了这个包的基本功能。
快速启动
- 使用pip install下载并安装
- 从PyPi
pip install django-userforeignkey
- 如果您更喜欢主分支的开发版本,也可以直接从这个git repo中获得
pip install git+https://github.com/beachmachine/django-userforeignkey.git
- 将django_userforeignkey添加到INSTALLED_APPS设置中,如下所示:
INSTALLED_APPS=[...'django_userforeignkey',]
- 将django_userforeignkey.middleware.UserForeignKeyMiddleware添加到MIDDLEWARE设置中,如下所示:
MIDDLEWARE=(...'django.contrib.auth.middleware.AuthenticationMiddleware',...'django_userforeignkey.middleware.UserForeignKeyMiddleware',)
或者,如果您仍然使用较旧的django版本(例如django 1.8)和MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES=(...'django.contrib.auth.middleware.AuthenticationMiddleware',...'django_userforeignkey.middleware.UserForeignKeyMiddleware',)
确保在AuthenticationMiddleware之后插入UserForeignKeyMiddleware中间件。
示例用法
只需将UserForeignKey添加到模型中,就像使用任何其他外键一样。
fromdjango.dbimportmodelsfromdjango_userforeignkey.models.fieldsimportUserForeignKeyclassMyModel(models.Model):my_data=models.CharField(max_length=64,verbose_name="Very important data that are somehow related to a user")user=UserForeignKey(auto_user_add=True,verbose_name="The user that is automatically assigned",related_name="mymodels")
- 该UserForeignKey的行为与用户模型的普通外键一样(使用settings.AUTH_USER_MODEL),因此还具有诸如related_name之类的属性。
- 但是,每当通过调用包含request.user对象的经过身份验证的视图(admin、rest api,…)创建对象时, request.user对象自动关联。
配置选项
配置选项类似于djangosDateField
- auto_user每次保存对象时(例如,创建或更新)自动设置当前用户。这对于上次由信息修改非常有用
- auto_user_add在首次创建对象时自动设置当前用户。这对于由信息创建的非常有用
更改日志
0.3.0(元版本,无实际代码更改)
- 对django 1.8、1.9和1.10的支持度下降
- 增加了对django 2.1的支持
0.2.1
- 添加了带license_file关键字的setup.cfg,确保在使用pip install 时也安装了实际的许可文件
- 改进的.travis.yml
0.2.0
- 已测试Django 2.0支持
- 为Django 2.0支持更新了测试应用程序
- 更新了django 2.0自动测试的tox和travis
- 行为更改:在0.2.0之前,只有当auto_user == True时,userforeignkey字段才将editable设置为False。因为如果auto_user == True or auto_user_add == True 0.2.0editable设置为False。
0.1.2
- PYPI的初始版本
开发和测试
git clone --recursive https://github.com/beachmachine/django-userforeignkey cd django-userforeignkey virtualenv -p python2 venv # or virtualenv -p python3 source venv/bin/activate python setup.py install pip install Django cd tests/user_foreign_key_testapp python manage.py test
您还可以使用tox进行测试,因为它将自动针对几个django和python版本进行测试。有关详细信息,请参见tox.ini。
测试源代码位于主分支中的另一个repository中。可以通过调用获取该存储库中的更改
git submodule update --remote