﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
12876	maximum recursion error when caching querysets on models	zbyte64	elachuni	"The following test case causes a runtime exception against django 1.2 beta 1:

{{{
from django.test import TestCase
from django.db import models

class TestModel(models.Model):
    def cachedmethod(self):
        if not hasattr(self, '_cachedmethod'):
            self._cachedmethod = RelatedModel.objects.all().filter(test_model=self)
        return self._cachedmethod

class RelatedModel(models.Model):
    test_model = models.ForeignKey(TestModel)
    category = models.CharField(max_length=50)

class dummy(object):
    def __init__(self, parent):
        self.parent = parent
    
    def cachedmethod(self):    
        if not hasattr(self, '_cachedmethod'):
            self._cachedmethod = RelatedModel.objects.all().filter(test_model=self.parent)
        return self._cachedmethod

class BreakMeTest(TestCase):
    def test_caching(self):
        parent = TestModel()
        parent.save()
        related = RelatedModel(category='foo', test_model=parent)
        related.save()
        
        adummy = dummy(parent)
        adummy.cachedmethod()
        adummy.cachedmethod().filter(category='foo') #this doesn't break it
        parent.cachedmethod()
        parent.cachedmethod().filter(category='foo') #this breaks it

}}}"		closed	Database layer (models, ORM)	1.2-beta		fixed	pycamp2010	zbyte64@…	Ready for checkin	1	0	0	0	0	0
