Never mind...I found the problem. It wasn't select_related() ;)

On Dec 19, 11:53 am, Rufman <[EMAIL PROTECTED]> wrote:
> I'm using select_related() and when I debug (eclipse and pydev) I can
> see that the ForeignKey references are cached. But somehow I still hit
> the database (unnecessarily in my opinion) when I render in the
> template.
> All the ForeignKeys that are referenced in this query are set to
> null=False
>
> What could be the problem?
>
> Here's the models.py
>
> class TestCaseSuite(models.Model):
>     id = models.IntegerField(primary_key=True)
>     hashid = models.CharField(max_length=390, blank=True)
>     name = models.ForeignKey(Strings, db_column='name',
> related_name='tstcName')
>     url = models.ForeignKey(Text, db_column='url', related_name='url')
>     startsat = models.DateTimeField()
>     duration = models.IntegerField()
>     result = models.IntegerField()
>     applicationname = models.ForeignKey(Strings, null=False,
> db_column='applicationname', related_name='applicationname',
> db_index=True)
>     hardwareversion = models.ForeignKey(Strings, null=False,
> db_column='hardwareversion', related_name='hardwareversion',
> db_index=True)
>     executionenvironment = models.ForeignKey(Strings, null=False,
> db_column='executionenvironment', related_name='executionenvironment',
> db_index=True)
>     releasetype = models.ForeignKey(Strings, null=False,
> db_column='releasetype', related_name='releasetype', db_index=True)
>     hostname = models.ForeignKey(Strings, null=False,
> db_column='hostname', related_name='hostname', db_index=True)
>     releasenumber = models.ForeignKey(Strings, null=False,
> db_column='releasenumber', related_name='releasenumber',
> db_index=True)
>     tsreference = models.IntegerField(null=True, blank=True)
>     textid = models.ForeignKey(Text, null=True, db_column='textid',
> related_name='tstcTextid', db_index=True, blank=True)
>
>     objects = SQLManager();
>
>     def getTSTCReference(self):
>         return TestCaseSuite.objects.get(id__exact=self.tsreference)
>
>     class Meta:
>         db_table = u'test_case_suite'
>
> and the call in views.py:
>
> failed = TestCaseSuite.objects.filter(applicationname__string__exact =
> projectname,
>                                           releasenumber__string__exact
> = release,
>
> hardwareversion__string__exact = hwversion,
>                                           releasetype__string__exact =
> reltype,
>                                           result__exact = FAILED,
>
> tsreference__isnull=False).select_related()
>
>     testcases =
> TestCaseSuite.objects.filter(applicationname__string__exact =
> projectname,
>
> releasenumber__string__exact = release,
>
> hardwareversion__string__exact = hwversion,
>
> releasetype__string__exact = reltype,
>
> tsreference__isnull=False).select_related()
>
> Stephane
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
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