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
-~----------~----~----~----~------~----~------~--~---