> I am trying to learn django and write a small application. I am facing issue > in executing a join with django. > I am able to find a work around by executing a raw SQL query using cursor. > But that have problem that I need to access fields using > "object.0' or 'object.1' which is too verbose and error prone. > > Is there better way of doing the same thing or executing joins using Django > models. > > here is my table structure > > table 1 : Company > id = IntField > name = CharField > > table 2 : Schmes > id = Int field > Name = CharFiled > comp_id = ForeignKey (company) > > table 3 : Price > > scheme_id = ForeignKey(Schemes) > price = CharField() > Date = DateTimeField() > > I want to execute a query on the price table where I can select the price of > all the schemes for the specified company. > > something like this if I write SQL : > > select price from Price, Schemes, Company where Price.scheme_id = Scheme.id > and Scheme.comp_id = Company.id and Company.id = 1.
Puneet, Try something like this: company = Company.objects.get(name="foocorp") prices = Price.objects.filter(scheme_id__comp_id=company) You can use __ (double underscores) to span relationships. The Docs have more: http://docs.djangoproject.com/en/dev/topics/db/queries/#lookups-that-span-relationships Regards, BG -- Baishampayan Ghose b.ghose at gmail.com _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers