Tools for Profile models in Django.
Project description
About
The lazy loading of profiles was inspired by the rather incredible Noah Kantrowitz.
Features
Lazy loading of your authenticated profile record across the request object lifetime. That means in the Python code and the templates.
Name your profile model anything you want in settings.AUTH_PROFILE_MODULE.
Installation
Get the code:
pip install django-profiletools
Install the middleware and context_processor in your settings.py:
TEMPLATE_CONTEXT_PROCESSORS = ( ... 'profiletools.context_processors.fetch_profile', ) MIDDLEWARE_CLASSES = ( ... 'profiletools.middleware.LazyProfileMiddleware', )
Also in settings.py, set the AUTH_PROFILE_MODULE to your profile model:
AUTH_PROFILE_MODULE = "profiles.Profile"
Based on that, your profile model should resemble something like:
# profiles.models.Profile.py from django.contrib.auth.models import User from django.db import models class Profile(models.Model): user = models.OneToOneField(User) def __unicode__(self): return self.user.username
note: If you don’t use profiles.models.Profile, say members.models.UserProfile go ahead and change the AUTH_PROFILE_MODULE to “members.UserProfile”.
Usage
In your templates:
{{ request.my_profile }}
In your functional views:
profile = request.my_profile
In your class-based views:
profile = self.request.my_profile
Call my_profile as many times as you want, it only loads once. So if you call it 100 times in a view, the SQL SELECT is only done the first time. If no user is found then the my_profile call result is None, which makes it easier to handle templates which need to be able to handle unauthenticated users (like the about page).
note: If you are using the members.UserProfile example, you’ll need to call that by using request.my_userprofile.
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
File details
Details for the file django-profiletools-0.1.1.tar.gz
.
File metadata
- Download URL: django-profiletools-0.1.1.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1b1d4409b8ed4e522e25477496334f6cd0d44f42324a325c282ecd46562ed28 |
|
MD5 | 274f6829804e00cee7ff4742cb508c3d |
|
BLAKE2b-256 | 194c7a0dc6563b338753f9f32e8123ffcf1c701e1e692bcf374dd71f09919aba |