Manage user preferences

Is Singleton model, Cache and Context Processors the preferred way to store user preferences like language, timezone, notifications etc.,

How do you guys do this?


If you’re talking about settings on a per-user basis and you want it persistent across logins and devices, I’d use a Profile model for the things like language and timezone. (See Extending the existing User model). Depending upon how you want to manage “notifications”, you may want to do that with a Notification model having a many-to-many relationship with User.

If it’s on the current session only, then I’d probably store it in the user`s session.