User can have many images, but only one profile image:
class User:
profile_image = ForeignKey('BackgroundImage', blank=True, null=True)
# other fields
class BackgroundImage:
owner = ForeignKey('User')
# other fields
# get a profile pic
image_url = user.profile_pic and user.profile_pic.image.url or ''
# set a new profile pic
image = BackgroundImage(....)
user.profile_pic = image
user.save()
User can have many images, but only one profile image, without
modifying user model
class User:
# other fields
class BackgroundImage:
owner = ForeignKey('User')
# other fields
class UserBackgroundImage:
user = OneToOneField('User')
profile_picture = ForeignKey('BackgroundImage')
# get a profile pic
image_url = user.userbackgroundimage and
user.backgroundimage.profile_picture.image.url or ''
# set a new profile pic
image = BackgroundImage(....)
user_image, created =
UserBackgroundImage.objects.get_or_create(user=user,
defaults={'profile_picture': image})
if not created:
user_image.profile_picture = image
user_image.save()
Cheers
Tom