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