Your model can work. But I think the model there is an alternate way to create this model.
The way I might design this is have a profile model
Profile = name, birth date, location, favorite books, friends, ProfilePicture (foreignKey)
ProfilePicture = image, caption
So now, you can have multiple profile pictures and the profile will point to that profile picture which needs to be shown. Hope this helps.
To do it the way you are doing - you need to make sure that first all User=X have set using_image=false. Then set the particular used using_image=true. Then you can retrieve the unique photo for every user by filtering on using_image = true This needs to be done in code rather than in model.