{ "info": { "author": "Aiakos Contributors", "author_email": "aiakos@aiakosauth.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: System :: Systems Administration :: Authentication/Directory" ], "description": "# Modular user model for Django\n[![PyPI version](https://badge.fury.io/py/django-modular-user.svg)](https://badge.fury.io/py/django-modular-user)\n\n**django-modular-user** lets you easily customize Django's User model, without any compromises. Unlike Django's own `AbstractBaseUser`, here nothing is irremovable, you can use exactly the parts you want.\n\n## Requirements\n* Django 2.0+\n\n## Installation\n```sh\npip install django-modular-user\n```\n\n* Create a new Django package with following models.py, and a migrations/ subdirectory:\n```python\nfrom django_modular_user.user import AbstractUser\n\nclass User(AbstractUser):\n pass\n```\n\n* In `settings.py`, set `AUTH_USER_MODEL = 'your_new_package_name.User'`\n* Run `./manage.py makemigrations`\n\n## Configuration\nYou may configure the basic profile data with `USER_CORE_MODULES` setting. For example, to create an User model without usernames and passwords, that uses email as the username, you may use:\n```python\nUSER_CORE_MODULES = [\n 'django_modular_user.user:AbstractBaseUser',\n 'django_modular_user.user:EmailMixin', # email\n 'django_modular_user.user:NamePartsMixin', # given_name, middle_name, family_name\n 'django_modular_user.user:ActiveMixin', # is_active\n 'django_modular_user.user:StaffMixin', # is_staff\n 'django_modular_user.user:PermissionsMixin', # is_superuser and other permissions\n 'django_modular_user.user:JoinedMixin', # date_joined\n]\nUSERNAME_FIELD = 'email'\nUSER_EMAIL_UNIQUE = True\n```\n\n## App-specific User mixins\n`django-modular-user` automatically scans all `INSTALLED_APPS` for `user.py` modules that contain a `UserMixin` class. Such mixins are automatically added to the User model; you only need to run `./manage.py makemigrations` after adding an app to your `INSTALLED_APPS` list.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/aiakos/django-modular-user", "keywords": "django user model auth email phone number", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-modular-user", "package_url": "https://pypi.org/project/django-modular-user/", "platform": "", "project_url": "https://pypi.org/project/django-modular-user/", "project_urls": { "Homepage": "https://gitlab.com/aiakos/django-modular-user" }, "release_url": "https://pypi.org/project/django-modular-user/0.2.0/", "requires_dist": [ "django (<2.99,>=2.0.0)" ], "requires_python": "", "summary": "Modular user model for Django", "version": "0.2.0" }, "last_serial": 4865656, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "78ec1ef225eb36b7b5102f52b0267e9d", "sha256": "2968a3796dfa0e5ed0c120f0d67cb711abb29fa293df75b1bf1f322400679414" }, "downloads": -1, "filename": "django_modular_user-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "78ec1ef225eb36b7b5102f52b0267e9d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16796, "upload_time": "2019-02-20T23:39:41", "url": "https://files.pythonhosted.org/packages/8c/bf/9b1a8f0362dab9a20139c0b47ef510c9882a1f7e6c5c8e0fc1da91c812c6/django_modular_user-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bc5a017a40ac04c4751673cc3d503027", "sha256": "82202b06f8b7e29ed443a5f5391f0a3e64615174d9a445b1567036c06ce03ab1" }, "downloads": -1, "filename": "django-modular-user-0.1.0.tar.gz", "has_sig": false, "md5_digest": "bc5a017a40ac04c4751673cc3d503027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10290, "upload_time": "2019-02-20T23:39:43", "url": "https://files.pythonhosted.org/packages/42/82/710f476ca78ee910bb5f4ef861926e554fc9ba0d16e68cea8f9767779232/django-modular-user-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ff3067c11745b93ee50688a2c080d052", "sha256": "64f1f2b0d7dceec77a90d20e4d3b4ecb02deea08ec8f72f26767c6529563cc77" }, "downloads": -1, "filename": "django_modular_user-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ff3067c11745b93ee50688a2c080d052", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16843, "upload_time": "2019-02-20T23:49:29", "url": "https://files.pythonhosted.org/packages/b1/b8/0ed678b907d246e62da97fe84e77302c270070b726e0698d4a50c8c88eea/django_modular_user-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f8f74e3f6cf85012d9f993c2aaf00749", "sha256": "b1bd3ebbf0dd63b748483695aedc19fbb449cb8d53bc4ff5255f9b905a587679" }, "downloads": -1, "filename": "django-modular-user-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f8f74e3f6cf85012d9f993c2aaf00749", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11438, "upload_time": "2019-02-20T23:49:30", "url": "https://files.pythonhosted.org/packages/6e/86/24eea002218563421ce72ba1f269c81b0ea335c4bcd3e508c7dd354e696b/django-modular-user-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "076bbed9360615e435ab13d74abb0841", "sha256": "f771e66869cba1fe32deb49652d3b73365c6dfde9f6bc518ad687e361edaf145" }, "downloads": -1, "filename": "django_modular_user-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "076bbed9360615e435ab13d74abb0841", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16872, "upload_time": "2019-02-25T16:49:51", "url": "https://files.pythonhosted.org/packages/33/73/0944b149448c15f0f0c374d881c0e7862f3b8a080807fa072962f198c34f/django_modular_user-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77c750796b887359321c9bd626a32da5", "sha256": "cd6173ed8395bd58538354aa83834618fd3142520066eb15d6dfea7e389f2354" }, "downloads": -1, "filename": "django-modular-user-0.2.0.tar.gz", "has_sig": false, "md5_digest": "77c750796b887359321c9bd626a32da5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11461, "upload_time": "2019-02-25T16:49:53", "url": "https://files.pythonhosted.org/packages/f8/6d/4ac281799f37feabc7d7f36a7bb43c1c5fd8a56278a7465e6810cedb1c9e/django-modular-user-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "076bbed9360615e435ab13d74abb0841", "sha256": "f771e66869cba1fe32deb49652d3b73365c6dfde9f6bc518ad687e361edaf145" }, "downloads": -1, "filename": "django_modular_user-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "076bbed9360615e435ab13d74abb0841", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16872, "upload_time": "2019-02-25T16:49:51", "url": "https://files.pythonhosted.org/packages/33/73/0944b149448c15f0f0c374d881c0e7862f3b8a080807fa072962f198c34f/django_modular_user-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77c750796b887359321c9bd626a32da5", "sha256": "cd6173ed8395bd58538354aa83834618fd3142520066eb15d6dfea7e389f2354" }, "downloads": -1, "filename": "django-modular-user-0.2.0.tar.gz", "has_sig": false, "md5_digest": "77c750796b887359321c9bd626a32da5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11461, "upload_time": "2019-02-25T16:49:53", "url": "https://files.pythonhosted.org/packages/f8/6d/4ac281799f37feabc7d7f36a7bb43c1c5fd8a56278a7465e6810cedb1c9e/django-modular-user-0.2.0.tar.gz" } ] }