{ "info": { "author": "Chris Franklin", "author_email": "chris@hairy.io", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "CUser, make email the USERNAME\\_FIELD\n=====================================\n\nCUser makes it easy to use email address as your identification token\ninstead of a username.\n\nCUser is a custom Django user model (extends ``AbstractBaseUser``) so it\ntakes a tiny amount of effort to use.\n\nThe only difference between CUser and the vanilla Django ``User`` is email\naddress is the ``USERNAME_FIELD`` (and username does not exist).\n\nCUser supports Django 1.8+\n\nWhy use CUser?\n--------------\n\nBecause you want everything in ``django.contrib.auth`` except for the\n``username`` field and you also want users to **log in with email addresses**.\nAnd you don't want to create your own custom user model or authentication\nbackend.\n\nInstall & Set up\n----------------\n\n0. If you previously used Django's default user model,\n ``django.contrib.auth.models.User``, jump to **Notes** first (then come\n back). Otherwise, continue onward!\n\n1. Install with ``pip install django-username-email-fullname``\n\n2. Add ``cuser`` to your ``INSTALLED_APPS`` setting:\n\n .. code-block:: python\n\n INSTALLED_APPS = [\n ...\n 'cuser',\n ]\n\n3. Specify the custom model as the default user model for your project\n using the ``AUTH_USER_MODEL`` setting in your settings.py:\n\n .. code-block:: python\n\n AUTH_USER_MODEL = 'cuser.CUser'\n\n4. Instead of referring to User directly, you should reference the user\n model using ``django.contrib.auth.get_user_model()``\n\n5. If you use Django's default ``AuthenticationForm`` class, it is\n strongly recommended that you replace it with the one included with\n CUser. This will make the ```` have its ``type`` attribute set\n to ``email`` and browsers' autocomplete feature will suggest email\n addresses instead of usernames. For example, if your project is using\n Django's default ``login`` view, this is what you would put in your\n urls.py in order to make use of CUser's ``AuthenticationForm`` class:\n\n .. code-block:: python\n\n from cuser.forms import AuthenticationForm\n from django.conf.urls import include, url\n from django.contrib.auth.views import login\n\n urlpatterns = [\n url(r'^accounts/login/$', login, {'authentication_form': AuthenticationForm}, name='login'),\n url(r'^accounts/', include('django.contrib.auth.urls')),\n ...\n ]\n\n6. Run migrations.\n\n .. code-block:: shell\n\n python manage.py migrate\n\nConfiguration\n-------------\n\nTo override any of the default settings, create a dictionary named ``CUSER`` in\nyour settings.py with each setting you want to override. For example:\n\n.. code-block:: python\n\n CUSER = {\n 'app_verbose_name': 'Authentication and Authorization',\n 'register_proxy_auth_group_model': True,\n }\n\nThese are the settings:\n\n``app_verbose_name`` (default: ``_(\"Custom User\")``)\n****************************************************\n\nThis controls the value that CUser will use for its ``AppConfig`` class'\n``verbose_name``.\n\n``register_proxy_auth_group_model`` (default: ``False``)\n********************************************************\n\nWhen set to ``True``, CUser's admin.py will unregister Django's default\n``Group`` model and register its own proxy model of Django's default ``Group``\nmodel (also named ``Group``). This is useful if you want Django's default\n``Group`` model to appear in the same part of the admin as CUser's ``CUser``\nmodel.\n\nNotes\n-----\n\nIf you have tables referencing Django's ``User`` model, you will have to\ndelete those table and migrations, then re-migrate. This will ensure\neverything is set up correctly from the beginning.\n\nWhen you define a foreign key or many-to-many relations to the ``User``\nmodel, you should specify the custom model using the ``AUTH_USER_MODEL``\nsetting.\n\nFor example:\n\n.. code-block:: python\n\n from django.conf import settings\n from django.db import models\n\n class Profile(models.Model):\n user = models.ForeignKey(\n settings.AUTH_USER_MODEL,\n on_delete=models.CASCADE,\n )\n\nLicense\n-------\n\nReleased under the MIT license. See LICENSE for details.\n\nQuestions, comments, or anything else?\n--------------------------------------\n\n- Open an issue\n- `Twitter `__\n- tom@meagher.co", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/hairychris/django-username-email-fullname/", "keywords": "user email username fullname", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django-username-email-fullname", "package_url": "https://pypi.org/project/django-username-email-fullname/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-username-email-fullname/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/hairychris/django-username-email-fullname/" }, "release_url": "https://pypi.org/project/django-username-email-fullname/2.0.3/", "requires_dist": null, "requires_python": null, "summary": "Custom Django User model that makes email the USERNAME_FIELD.", "version": "2.0.3" }, "last_serial": 2649470, "releases": { "2.0": [ { "comment_text": "", "digests": { "md5": "db6cfdcec4c3987f7487911c0d121f45", "sha256": "9180a4eba28591a4fe61b7920a6bcf2816cbd8e403a18c898307fee0e465ac33" }, "downloads": -1, "filename": "django-username-email-fullname-2.0.tar.gz", "has_sig": false, "md5_digest": "db6cfdcec4c3987f7487911c0d121f45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8254, "upload_time": "2017-02-06T01:18:04", "url": "https://files.pythonhosted.org/packages/54/10/fdd05125a5137e6e6474a18b11051f0329652afb91dfe93b583ca301b914/django-username-email-fullname-2.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "95680154849133d81ffbbda415fd5279", "sha256": "51673090b73f1bf33f3667d403837d57ecfbd341d8c0dcc02abb37c1fa0b5297" }, "downloads": -1, "filename": "django-username-email-fullname-2.0.1.tar.gz", "has_sig": false, "md5_digest": "95680154849133d81ffbbda415fd5279", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8267, "upload_time": "2017-02-06T02:52:32", "url": "https://files.pythonhosted.org/packages/2d/94/1917a99a497f5e9c4e5f92f3374866ab35e00f0eddddb209c43aa8691e93/django-username-email-fullname-2.0.1.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "e426713f699d87dd3ed6419b13594dbc", "sha256": "950292b66caa05e2d97401d1038f29d55a8e2e3bbc626680c26efaff0a6e527f" }, "downloads": -1, "filename": "django-username-email-fullname-2.0.3.tar.gz", "has_sig": false, "md5_digest": "e426713f699d87dd3ed6419b13594dbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8543, "upload_time": "2017-02-17T13:02:02", "url": "https://files.pythonhosted.org/packages/b2/43/28a84ff419ef2d45a493e221b4663dd1486467d9132d14c79054c35a27d0/django-username-email-fullname-2.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e426713f699d87dd3ed6419b13594dbc", "sha256": "950292b66caa05e2d97401d1038f29d55a8e2e3bbc626680c26efaff0a6e527f" }, "downloads": -1, "filename": "django-username-email-fullname-2.0.3.tar.gz", "has_sig": false, "md5_digest": "e426713f699d87dd3ed6419b13594dbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8543, "upload_time": "2017-02-17T13:02:02", "url": "https://files.pythonhosted.org/packages/b2/43/28a84ff419ef2d45a493e221b4663dd1486467d9132d14c79054c35a27d0/django-username-email-fullname-2.0.3.tar.gz" } ] }