Sorry to be pushy, but I would like to bump this or find the next tree to bark up.
-S On Feb 17, 9:42 pm, "subs...@gmail.com" <subs...@gmail.com> wrote: > bmodels.Contact.objects.select_related('IR_contact','consumer_contact','program','consumer').filter(consumer__file=file).order_by('- > date') > > Yeah, I figured as much. > > -S > > On Feb 17, 4:34 pm, Jeremy Dunck <jdu...@gmail.com> wrote: > > > > > Erm, and the queryset creation. > > > Also, people are en route to PyCon, so responses may be a bit slow. > > > On Wed, Feb 17, 2010 at 3:30 PM, subs...@gmail.com <subs...@gmail.com> > > wrote: > > >http://dpaste.com/160722/ > > > > class Contact(models.Model): > > > program = models.ForeignKey('agency.Program') > > > consumer = > > > models.ForeignKey('consumer.Consumer',null=True,blank=True) > > > date = models.DateField('Contact Date') > > > notes = models.TextField() > > > date_added = models.DateTimeField(editable=False) > > > method = > > > models.CharField(max_length=10,choices=choices.CONTACT_METHOD,\ > > > null=True,blank=True) > > > > # consumer_contact > > > class Contact(basemodels.Contact): > > > base = models.OneToOneField(basemodels.Contact, > > > parent_link=True,related_name="consumer_contact") > > > service = models.ForeignKey(Service) > > > confidential = models.BooleanField(default=False,help_text='These > > > notes will not be visible to general staff') > > > group = models.ForeignKey(Group,null=True,blank=True) > > > group_contact = > > > models.ForeignKey('consumer.GroupContact',blank=True,null=True) > > > > def save(self, *args, **kwargs): > > > super(Contact, self).save(*args,**kwargs) > > > > class Meta: > > > permissions = ( > > > ("allow_confidential", "Can make contacts confidential"), > > > ) > > > > #ir_contact > > > class Contact(basemodels.Contact): > > > > base=models.OneToOneField(BaseContact,parent_link=True,related_name='IR_contact') > > > IR=models.ForeignKey(IR,blank=True,null=True) > > > > referred_from=models.ForeignKey(ReferralSource,related_name='IR_referred_from') > > > > referred_to=models.ManyToManyField(ReferralSource,related_name='IR_referred_to') > > > > information=models.ManyToManyField(Information,verbose_name='Information > > > Requested') > > > > On Feb 17, 4:15 pm, Jeremy Dunck <jdu...@gmail.com> wrote: > > >> We'll need your model definitions in order to help much. > > > >> On Wed, Feb 17, 2010 at 2:54 PM, Steve <subs...@gmail.com> wrote: > > >> > Hello all, > > > >> > I believeselect_relatedis creating some extraneous joins in situations > > >> > where one is joining child models from a base model (model > > >> > inheritance). > > > >> > Take the following SQL generated (dpaste here, probably more readable > > >> >http://dpaste.com/160677/) > > > >> > ==== > > > >> > SELECT (fields) FROM `base_contact` > > > >> > LEFT OUTER JOIN `consumer_consumer` ON (`base_contact`.`consumer_id` = > > >> > `consumer_consumer`.`id`) # ok > > > >> > INNER JOIN `agency_program` ON (`base_contact`.`program_id` = > > >> > `agency_program`.`id`) # ok > > > >> > LEFT OUTER JOIN `consumer_contact` ON (`base_contact`.`id` = > > >> > `consumer_contact`.`base_id`) # ok > > > >> > INNER JOIN `base_contact` T5 ON (`consumer_contact`.`base_id` = > > >> > T5.`id`) # > > >> > ?!? > > > >> > # These next two are questionable, since they are joined on a LEFT > > >> > OUTER (so > > >> > they may potentially not be there) > > > >> > INNER JOIN `consumer_service` ON (`consumer_contact`.`service_id` = > > >> > `consumer_service`.`id`) > > > >> > INNER JOIN `consumer_servicetype` ON (`consumer_service`.`type_id` = > > >> > `consumer_servicetype`.`id`) > > > >> > LEFT OUTER JOIN `IR_contact` ON (`base_contact`.`id` = > > >> > `IR_contact`.`base_id`) # ok > > > >> > INNER JOIN `base_contact` T9 ON (`IR_contact`.`base_id` = T9.`id`) # > > >> > ?!? > > > >> > WHERE `consumer_consumer`.`file` = 06-1757 ORDER BY > > >> > `base_contact`.`date` > > >> > DESC > > > >> > ==== > > > >> > There are two joins I simply can't explain (marked "?!?"). Removing > > >> > them > > >> > gives me my expected results.select_relatedin on case seems to > > >> > correctly > > >> > create a LEFT OUTER, but then follows up by creating an unwanted INNER. > > > >> > Keep in mind I made a note about the 'questionable' join above, but > > >> > even > > >> > removing that entirely creates the same problem. > > > >> > I'll be glad to file a ticket, if the issue is something other than my > > >> > ignorance. > > > >> > -Steve > > > >> > -- > > >> > You received this message because you are subscribed to the Google > > >> > Groups > > >> > "Django developers" group. > > >> > To post to this group, send email to > > >> > django-develop...@googlegroups.com. > > >> > To unsubscribe from this group, send email to > > >> > django-developers+unsubscr...@googlegroups.com. > > >> > For more options, visit this group at > > >> >http://groups.google.com/group/django-developers?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Django developers" group. > > > To post to this group, send email to django-develop...@googlegroups.com. > > > To unsubscribe from this group, send email to > > > django-developers+unsubscr...@googlegroups.com. > > > For more options, visit this group > > > athttp://groups.google.com/group/django-developers?hl=en. -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-develop...@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.