On Tuesday, January 25, 2011 3:34:03 PM UTC, kmpm wrote:
>
> I have some issues with getting hold of the instance of a Model to which a 
> RelatedManager got contributed to.
> Is that at all possible and if so, how?
>
> From *my_method* below I can get hold of the model *RelatedStuff* by 
> calling self.model but that really doesn't get me there.
>
> class MainStuff(models.Model):
>     ....
>     
> class RelatedStuff(models.Model):
>     ...
>     main = models.ForeignKey(MainStuff)
>     objects = CustomManager()
>
> class CustomManager(models.Manager):
>     use_for_related_fields=True
>     
>     def my_method(self):
>         #here I would like to access the instance of MainStuff to which 
> this got contributed
>
>
>
Interesting question. Unfortunately, looking at the code, it doesn't seem 
like you can. Django creates a new RelatedManager class every time, but it 
does this via a closure - and the instance is only accessible within the 
closure.

There are probably good reasons why it's done that way (I suspect passing 
the instance as a parameter and making it available as an attribute would 
cause a persistent reference to be kept, which would mean that the instance 
would never be garbage-collected).
--
DR.

-- 
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 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to