Skip to main content

User g11n extension for Django

Project description

Django User g11n

Django supports i18n and l10n. However, there is no item to set the user's time zone and region as a default feature.

Django User g11n (globalization) provides fields for users to set time zones and regions, as well as middleware to handle them properly.

Core idea is See the Django documentation for more information

  • Support Django 2 and 3
  • Support Python3.7, 3.8 (Maybe 2.7. Not tested)

Usage

Install the package from pypi

$ pip install django-user-g11n

Create a custom user model

Create an application for custom users. Please refer to the Django documentation for more information. See the Django documentation for more information

$ manage.py startapp accounts

Add the following to your application's models.py

from django.contrib.auth import models as auth_models
from user_g11n.models import UserLanguageSupportMixin, UserTimeZoneSupportMixin


class User(UserTimeZoneSupportMixin,
           UserLanguageSupportMixin,
           auth_models.AbstractUser):
    pass

modifying to settings.py

INSTALLED_APPS

Add a user-extended application and user_g11n to INSTALLED_APPS.

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    .
    .
    .
    'accounts',  # Your Custom user model application
    'user_g11n', # Add
)

MIDDLEWARE

Added two middleware provided by django_user_g11n.

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    .
    .
    .
    'user_g11n.middleware.UserLanguageMiddleware', # Add
    'user_g11n.middleware.UserTimeZoneMiddleware', # Add
]

AUTH_USER_MODEL

Change or add the AUTH_USER_MODEL.

AUTH_USER_MODEL = 'accounts.User'

I18N, L10N & TIME_ZONE setting

Change the I18N, L10N, and TZ settings.

USE_I18N = True

USE_L10N = True

USE_TZ = True

TIME_ZONE = "Asia/Tokyo" # Change to your local timezone

migrate

Migration to adapt the changes.

$ ./manage.py makemigrations
$ ./manage.py migrate

Demo

The Docker configuration is provided. Please use the following command to start it. Go to http://localhost:8000 when the launch is complete.

$ docker-compose up

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-user-g11n-0.3.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

django_user_g11n-0.3-py3-none-any.whl (5.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page