Thanks a lot! On May 16, 10:28 pm, Rolando Espinoza La Fuente <dark...@gmail.com> wrote: > On Sun, May 16, 2010 at 6:41 PM, Odagi <fcmira...@gmail.com> wrote: > > Hello users, I cannot realize the difference between the different > > ways of extending a model. Suppose we have Place and Restaurant Models > > (a Restaurant is an extension of a Place). I know 3 different ways of > > define the data model: > > > 1. Multi-table inheritance: > > > class Place(models.Model): ... > > class Restaurant(Place): ... > > restaurant table gets all fields from place, > you can access all fields with single sql query > > > 2. OneToOne relationship: > > > class Place(models.Model): ... > > class Restaurant(models.Model): > > place = models.OneToOneField(Place, primary_key=True) > > You access "place" fields by using: restaurant.place > with extra db call unless you use select_related('place') > > > > > 3. ForeignKey unique: > > > class Place(models.Model): ... > > class Restaurant(models.Model): > > place = models.ForeignKey(Place, unique=True) > > In the old days there wasn't OneToOneField and people > used this method to have one-one relationship. > If you need to use ForeignKey+unique, better use OneToOneField. > > One difference is the related name, with ForeignKey+unique > you would need to use place.restaurant_set[0] to access related > restaurant. Using OneToOneField just use place.restaurant. > > ~Rolando > > -- > 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 > athttp://groups.google.com/group/django-users?hl=en.
-- 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=en.