[Answer]-Storing lists of words in database โ€“ best practice

1๐Ÿ‘

โœ…

I would go the route of using a user profile with categories and packages being many to many fields.

In models.py

from django.contrib.auth.models import User

class Category(models.Model):
    name = models.CharField(max_length=255)

class Package(models.Model):
    name = models.CharField(max_length=255)

class UserProfile(models.Model):
    user = models.ForiegnKey(User)

    categories = models.ManyToManyField(Category)
    packages = models.ManyToManyField(Package)

In admin.py

from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

class CustomUserAdmin(UserAdmin):     
    inlines = [UserProfile]
    #filter_horizontal = ('',) #Makes the selection a bit more friendly

admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)

In views.py

user_with_profile = User.objects.get(pk=user_id).get_profile()

All that being said. Django 1.5 will replace the user profile with being able to use a configurable user model.

๐Ÿ‘คNathaniel

Leave a comment