Yea, I'm not wanting to use stuff.objects, but I'm wanting to pull some of the same voodoo, probably not safe for a python novice like myself :-)
On Jun 29, 5:24 pm, Alex Gaynor <alex.gay...@gmail.com> wrote: > On Mon, Jun 29, 2009 at 5:19 PM, Mark Jones <mark0...@gmail.com> wrote: > > > I can't seem to reason out why/how this works. > > > I have a class Named Stuff > > > I can say Stuff.objects.filter(.....) and that will return valid set > > of data. > > > What I can't understand is what exactly is objects, and why is it I > > can call it with Stuff.objects, but I can't call it with stuff.objects > > (an instance of Stuff). > > > >>> dir(Stuff) shows me 'objects' > > >>> dir(stuff) shows me 'objects' > > > >>> type(Stuff.objects) > > <class 'django.db.models.manager.Manager'> > > >>> type(stuff.objects) > > Traceback (most recent call last): > > File "<console>", line 1, in <module> > > File "...manager.py", line 151, in __get__ > > AttributeError: Manager isn't accessible via Stuff instances > > > What is the python Magic going on here to make this possible? > > > I'm asking because I want to make something like 'objects' in that it > > doesn't need an instance, but it is scoped within the model of Stuff. > > > My background is C++ and these look like methods/objects that are > > static to the class, not part of the instances. I just can't figure > > out how to declare and instantiate them in python. > > Django uses an advanced python feature called descriptors in order to > prevent you from accessing a manager (which is what "objects" is) from an > instance. My understanding of the reason for this is somewhat conceptual: > asking for all the objects that are "Stuff"s makes sense, but asking for all > the objects that are "some object" doesn't make as much sense. > > Alex > > -- > "I disapprove of what you say, but I will defend to the death your right to > say it." --Voltaire > "The people's good is the highest law."--Cicero --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---