The easiest way would be to slice the list exactly how you were doing with
x[3]... It doesn't get much easier than that.

I guess if you really need to spare yourself three keystrokes, you can do it
like this:

>>> x = YourModel.objects.all()[3]
>>> x.foo = 'bar'
>>> x.save()


Cheers,
AT

On Fri, Oct 7, 2011 at 6:01 PM, Chris Seberino <cseber...@gmail.com> wrote:

>
>
> On Oct 7, 10:39 am, Jacob Kaplan-Moss <ja...@jacobian.org> wrote:
> > On Fri, Oct 7, 2011 at 10:30 AM, Chris Seberino <cseber...@gmail.com>
> wrote:
> >
> > > I've noticed that this doesn't often work in Django shell...
> >
> > > x = MyModel.objects.all()
> > > x[3].some_field = "new value"
> > > x[3].save()
>
> > This is because `MyModel.objects.all()` isn't a list; it's a QuerySet.
> > That is, `MyModel.objects.all()` *doesn't* hit the database until you
> > say `x[3]`, at which point Django performs a query with a LIMIT and
>
> OK.  I understand.  What is easiest way then to *force* my x[3] code
> above to hit the database so that
> my changes are permanent?
>
> --
> 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.
>
>

-- 
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