与用户关联的外键的Django会话
项目描述
Django包含出色的内置会话,但是所有数据都隐藏在base64编码的数据中。这使得对特定用户的所有活动会话进行查询变得非常困难。django-user-sessions修复了这个问题,并将会话对象作为其他ORM对象一样的一等公民。它是django.contrib.sessions的替代品。
我非常希望听到您对这个软件包的反馈。如果您遇到问题,请在GitHub上提交问题,或者通过分叉存储库并提交一些拉取请求来为此项目做出贡献。该软件包已翻译成英语、荷兰语和其他语言。请使用Transifex贡献您的语言。
还可以查看捆绑的示例模板和视图,了解如何将应用程序集成到您的项目中。
与Django 3.2和4.0兼容,支持Python 3.7、3.8、3.9和3.10。文档可在readthedocs.org找到。
功能
获取用户会话列表
user.session_set.filter(expire_date__gt=now())
或退出用户的所有会话
user.session_set.all().delete()
用户的IP地址和用户代理也存储在会话中。这允许在管理员界面中向用户显示活动会话列表。
同样,也可以在自定义布局中显示。
安装
请参阅文档中的安装说明。
GeoIP
您需要设置GeoIP才能使位置检测工作。请参阅Django文档中的安装GeoIP。
获取帮助
有关此包的一般问题,请前往Stack Overflow。如果您认为此包存在问题;检查该问题是否已列出(无论是已打开的还是已关闭的),如果没有,请提交问题。
开发
如何贡献
在GitHub上fork存储库并开始修改。
运行测试。
发送包含您更改的pull请求。
使用Transifex提供翻译。
运行测试
此项目旨在实现完整的代码覆盖率,这意味着您的代码应该经过良好的测试。还测试加固的代码分支。您可以使用以下命令运行完整的测试套件
make test
或者使用以下命令运行特定的测试
make test TARGET=tests.tests.MiddlewareTest
对于Python兼容性,使用tox。您可以使用以下命令运行完整的测试套件
tox
发布
以下操作是推送新版本所必需的
更新发布说明
如果添加了任何新的翻译字符串,请将新的源语言推送到Transifex。请确保翻译者有足够的时间翻译这些新字符串
make tx-push
添加迁移
python example/manage.py makemigrations user_sessions git commit user_sessions/migrations -m "Added migrations"
更新翻译
make tx-pull
打包并上传
bumpversion [major|minor|patch] git push && git push --tags python setup.py sdist bdist_wheel twine upload dist/*
许可证
此项目采用MIT许可证。
致谢
此库由Bouke Haarsma编写,并由贡献者贡献。