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 django-users@googlegroups.com
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