if you see many similarities between two models will surely are the same
thing. So BackgroundImage and ProfilePicture are the same thing and Photo
its very similar to. I think you must to use inheritance of models [1] an
use choices [2] for distinct types of pics

I would do the following:

class Pics(models.Model):
    PICS_TYPES = (
        ('PHOTOS', 'Photos'),
        ('BACKGROUNDS', 'Backgrounds'),
        ('PROFILES', 'Profiles')
    )
    user = models.ForeignKey(User)
    image = models.ImageField(upload_to=get_upload_file_name)
    caption = models.CharField(max_length=200)
    pub_date = models.DateTimeField(default=datetime.now)
    type = models.CharField(max_length=50, choices=PICS_TYPES)


class Album(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=200)
    pub_date = models.DateTimeField(default=datetime.now)


class Photo(Pics):
    album = models.ForeignKey(Album, default=3)


[1]
https://docs.djangoproject.com/en/1.5/topics/db/models/#model-inheritance
[2]
https://docs.djangoproject.com/en/1.5/ref/models/fields/#django.db.models.Field.choices



2013/11/5 Aamu Padi <[email protected]>

> Each user has many *albums*, and each album has its many photos. And each
> user has one *background image* to hold its many images. Similarly, a
> user has one *profile picture* to hold its many images.
>
> These are my models:
>
> class UserProfile(models.Model):
>     user = models.OneToOneField(User)
>     permanent_address = models.TextField()
>     temporary_address = models.TextField()
>     profile_pic = models.ForeignKey(ProfilePicture)
>     background_pic = models.ForeignKey(BackgroundImage)
>
>
> class Album(models.Model):
>     user = models.ForeignKey(User)
>     name = models.CharField(max_length=200)
>     pub_date = models.DateTimeField(default=datetime.now)
>
>
> class Photo(models.Model):
>     album = models.ForeignKey(Album, default=3)
>     image = models.ImageField(upload_to=get_upload_file_name)
>     caption = models.CharField(max_length=200)
>     pub_date = models.DateTimeField(default=datetime.now)
>
>
> class BackgroundImage(models.Model):
>     user = models.ForeignKey(User)
>     image = models.ImageField(upload_to=get_upload_file_name)
>     caption = models.CharField(max_length=200)
>     pub_date = models.DateTimeField(default=datetime.now)
>
>
> class ProfilePicture(models.Model):
>     user = models.ForeignKey(User)
>     image = models.ImageField(upload_to=get_upload_file_name)
>     caption = models.CharField(max_length=200)
>     pub_date = models.DateTimeField(default=datetime.now)
>
> I tried doing this,  to let the user copy one image from *ProfilePicture*to 
> *Background
> Image*, but didn't work:
>
> # Get the user
> >>>m = User.objects.get(username='m')
>
> # Get its set of Profile pictures
> >>>m_pro_set = m.profilepicture_set.all()
> >>>m_pro_set
> [<ProfilePicture: pro_mik>]
>
> # Get its set of Background images
> >>>m_back_set = m.backgroundimage_set.all()
> >>>m_back_set
> [<BackgroundImage: bg_mik>]
>
> # Get an image object from Profile picture of the user
> >>>m_pro_1 = m.profilepicture_set.get(id=2)
> >>>m_pro_1
> <ProfilePicture: pro_mik>
>
> # Get an image object from Background image of the user
> >>>m_back_1 = m.backgroundimage_set.get(id=2)
> >>>m_back_1
> <BackgroundImage: bg_mik>
>
> # So, I tried to copy one image from *BackgroundImage* of a user *to*
> *ProfilePicture*
>
> >>>m_pro_set.objects.create(m_back_1)
>
>
> *    File "<console>", line 1, object has attribute 'objects'*
> *AttributeError: 'QuerySet' object has no attribute 'objects'*
>
> So my question is, how to copy an objects from one model to another? Any
> advice will be much appreciated. Thank you!
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAHSNPWue7HtdGuJeqtEPsa%2Bncc2rrpE_tEuZSXRA4NXZtsmxkA%40mail.gmail.com
> .
> For more options, visit https://groups.google.com/groups/opt_out.
>



-- 
Rafael E. Ferrero

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAJJc_8WQMja-zJ6VNoD%2BVWZu8TAb0Gb_yQX-NCEa2vApae_dGQ%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to