User and Profile

This documentation outlines the structure of the User data model in a Django project. The model extends the default django.contrib.auth user model by adding a Profile object to store additional information.

User Model

The User model is Django’s default authentication model from django.contrib.auth.models.User. It provides core authentication functionality and user management capabilities.

Field

Type

Default

Description

id

AutoField

Auto-increment

Primary key

username

CharField

-

Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only

password

CharField

-

Required. Hashed password

email

EmailField

-

Optional email address

is_staff

BooleanField

False

Designates whether this user can access the admin site

is_active

BooleanField

True

Designates whether this user account should be considered active

is_superuser

BooleanField

False

Designates that this user has all permissions without explicitly assigning them

last_login

DateTimeField

null

Last login timestamp

date_joined

DateTimeField

auto_now_add

Date when user account was created

Profile Model

The Profile model extends the default Django User model using a one-to-one relationship. It includes fields for managing user preferences and settings such as timezone and auto-redirect behavior.

Profile model is defined in src/profile/models.py

Core Profile Fields

Field

Type

Default

Description

id

AutoField

Auto-increment

Primary key

user

OneToOneField

-

One-to-one relationship with User model

disable_auto_redirect

BooleanField

False

When True, prevents automatic redirect from / to /dashboard for this user

timezone

TimeZoneField

-

User’s preferred timezone

directory_path

method

-

Returns the directory path for user-specific files