一个简单的django应用程序,它会给你一个userforeignkey模型字段。

django-userforeignke的Python项目详细描述


https://travis-ci.org/beachmachine/django-userforeignkey.svg?branch=masterhttps://img.shields.io/pypi/v/django-userforeignkey.svg?maxAge=2592000:target:

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显示了这个包的基本功能。

快速启动

  1. 使用pip install下载并安装
pip install django-userforeignkey
  • 如果您更喜欢主分支的开发版本,也可以直接从这个git repo中获得
pip install git+https://github.com/beachmachine/django-userforeignkey.git
  1. django_userforeignkey添加到INSTALLED_APPS设置中,如下所示:
INSTALLED_APPS=[...'django_userforeignkey',]
  1. 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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java垂直解析txt文件   如何在从ovf部署vm时使用vi java api指定IP地址?   使用部分密钥进行java AES256解密   我无法接收RESTJava ws作为JSONObject发送到我的安卓应用程序的布尔值   java以下同步块的目的是什么?   java小部件在进入应用程序时停止更新   java如何在Okhttp中使用Socks5代理来启动http请求   java Android多资源库项目   java使用条形码4J创建gif条形码   java Play测试数据持久性问题使用GET时,发布的数据不可用   java Jnlp在证书中给出错误   java将我的exist服务器连接到GCM   AChartEngine中XAxis标题和XAxis标签之间的java边距   java BLOb:无法读取所有数据,但只有很少的kb   java Android WebView未加载Instagram授权   JAVAutil。日志记录可以指定一个java。util。通过D选项或不需要更改代码的某种方式创建日志格式化程序?   windows如何在Inno安装程序的路径中查找应用程序(Java)   java如何使用Jgit API调用“git checkout m”?   客户端Java服务器:通过广播在讲师和学生之间进行会议