Perfect! Thanks. On Oct 25, 2:20 pm, "Marty Alchin" <[EMAIL PROTECTED]> wrote: > On 10/25/07, Ryan K <[EMAIL PROTECTED]> wrote: > > > Why can't I change the User's name like so: > > > results[0].user.name = 'Brian' > > results[0].user.save() > > > ? > > > I instead have to assign it first: > > > found_user = results[0].user > > found_user.name = 'Brian' > > found_user.save() > > > Any help understanding this part of the API is greatly appreciated! > > When you set up the queryset initially, it doesn't actually hit the > database yet. So your "result" variable doesn't contain any objects, > it just contains instructions on how to get the objects. > > Instead, you're actually executing the query when you use results[0]. > This hits the database, gathers the results into a temporary list, and > returns the first item in that list. Since you didn't assign that list > anywhere, Python (and thus, Django) has no way of knowing that it > should reuse it. > > So when you use results[0] again, Django hits the database a second > time, getting you a fresh copy of the object, as it appears in the > database. That means it doesn't have the modification you made to the > first object, so when you save it, you'll notice that nothing changes > in the database. > > So, in a nutshell, you're altering the name on object 1, but saving > object 2, which was never modified. Assigning results[0].user to a > variable makes sure that you're using the same object each time, > without hitting the database and getting multiple copies. > > I don't know if I made that very clear, but if I didn't, I'm sure > somebody else here can explain it better. Hope this helps! > > -Gul
--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---