Hi - I'm having a hard time wrapping my head around one-to-many
relations.  I'd like to be able to do this in a view:

b = Book.objects.get(id=1)  #new book
request.user.get_profile().shelf1.add(b)  #add book to shelf1
request.user.shelf1.remove(b)     #remove from shelf1
request.user.shelf2.add(b)      #add to shelf2

Both shelves are exactly the same, and each user always only has two
shelves.  The shelf objects are create and assigned to the UserProfile
variables upon creation of the UserProfile.  I figure the models
should be organized like so:

Class Book(models.Model)
    #book fields

Class Shelf(models.Model)
    books = models.foreignkey(book)
    def add(self, b):
        self.books.append(b) #not sure about this
    def remove(self, Book):
        self.books.remove(b) #not sure about this

Class UserProfile(models.Model):
   shelf1 = models.foreignkey(Shelf)
   shelf2 = models.foreignkey(Shelf)

I don't understand how to add and remove objects from a one-to-many
relation.  According to the docs, going backward through a foreignkey
relation makes available queryset methods such as .add, .clear,
and .remove - but there aren't similar methods for going forward?

Thank you for your insight!

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=.


Reply via email to