Slight correction.  In your first example:

class Chapter(models.Model):
>        book = models.ForeignKey(Chapter)
>

The parameter to ForeignKey should be book:

class Chapter(models.Model):
       book = models.ForeignKey(Book)

As mentioned earlier, you can locate a chapter's book as chapter.book, and
you can locate a book's chapters using book.chapter_set.all().

  -- Scott Moonen

On Fri, May 9, 2008 at 12:08 PM, Mike Chambers <[EMAIL PROTECTED]>
wrote:

>
> I am working on an app to host some books online. I cant figure out the
> best way to represent a one to many relationship.
>
> Basically, a Book has multiple Chapters, but a Chapter can only be in
> one book.
>
> Looking at the docs, this seems to be the way to represent this:
>
>
> ------
> class Book(models.Model):
>
>
> class Chapter(models.Model):
>        book = models.ForeignKey(Chapter)
> ------
>
> Is that right? This seems a little counterintuitive to me, and something
> like this seems to make more sense:
>
>
> ------
> class Book(models.Model):
>        chapters = models.ManyToManyField(Chapter)
>
> class Chapter(models.Model):
> ------
>
> Of course, that means that a chapter can be placed on multiple books.
>
> The second example, also seems to make it a little easier to work with
> Books, as I can do:
>
> Book.objects.all()
>
> and get the Chapters associated with each book.
>
> So, what is the "correct" way to model this relationship?
>
> Thanks for any input...
>
> mike
>
>
> >
>


-- 
http://scott.andstuff.org/  |  http://truthadorned.org/

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

Reply via email to