Pony request: refetch method to models

18 views
Skip to first unread message

Jukka

unread,
Jan 26, 2010, 11:59:37 AM1/26/10
to Django developers
Hi all,

I'd like to propose adding a method to Model that can be used to fetch
a "fresh" version of a model object from the database. This is
something that I personally would often find useful. Usually this
happens when I'm testing some view code using the test client, and the
view is supposed to save some model changes into database. For
example:

client.post('some_url', {'id': obj.id, 'description': 'new'})
fresh_obj = ObjClass.objects.get(pk=obj.pk)
self.assertEqual('new', fresh_obj.description)

Now, I think that way of refreshing a model object is inelegant. What
I propose is a method that would be functionally identical to how a
fresh object is fetched above:

fresh_obj = obj.refetch()

This is a convenience method, but based on my own experience it would
be... well, convenient. I'd like to hear whether you think the
convenience would be worth extending the api. If you think it's worth
it, I'd be happy to write a patch.

--Jukka

Chris

unread,
Jan 26, 2010, 2:22:39 PM1/26/10
to Django developers

Why not just make a custom model method?

Russell Keith-Magee

unread,
Jan 26, 2010, 7:34:44 PM1/26/10
to django-d...@googlegroups.com
On Wed, Jan 27, 2010 at 12:59 AM, Jukka <valima...@gmail.com> wrote:
> Hi all,
>
> I'd like to propose adding a method to Model that can be used to fetch
> a "fresh" version of a model object from the database.

This isn't a completely unreasonble idea, but it is an unreasonable
time to suggest it :-)

We are days away from our feature freeze for 1.2. At this point, any
new ideas will need to wait until 1.3.

I'm fairly certain this idea has been proposed before, so there's
probably a ticket for it, too. If there isn't, open a new ticket so we
don't forget the idea.

If you want to propose this for 1.3, keep an eye on the release
schedule; once 1.2 is released, we'll start discussing the features we
want in 1.3.

Yours,
Russ Magee %-)

Jukka Välimaa

unread,
Jan 27, 2010, 12:13:42 PM1/27/10
to django-d...@googlegroups.com
For the method to be available conveniently, I would have to make it into a single class, and then subclass all my other model classes from that. I could do it, but if this is useful enough, it should be available by default, without requiring every single person to write the method on their own. Also, that solution would do nothing to various contrib and third-party models.

--Jukka


--
You received this message because you are subscribed to the Google Groups "Django developers" group.
To post to this group, send email to django-d...@googlegroups.com.
To unsubscribe from this group, send email to django-develop...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.


Jukka Välimaa

unread,
Jan 27, 2010, 12:15:25 PM1/27/10
to django-d...@googlegroups.com
Sounds reasonable. I couldn't find an existing ticket, so I made a new one, #12709.

--Jukka

Alex Gaynor

unread,
Jan 27, 2010, 12:17:48 PM1/27/10
to django-d...@googlegroups.com
2010/1/27 Jukka Välimaa <valima...@gmail.com>:

I'm almost positive this is a dupe of another ticket, in the 3000-6000
range I think.

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
"Code can always be simpler than you think, but never as simple as you
want" -- Me

Karen Tracey

unread,
Jan 27, 2010, 12:23:43 PM1/27/10
to django-d...@googlegroups.com
On Wed, Jan 27, 2010 at 12:17 PM, Alex Gaynor <alex....@gmail.com> wrote:
I'm almost positive this is a dupe of another ticket, in the 3000-6000
range I think.

The one I found was #901.

Karen

Alex Gaynor

unread,
Jan 27, 2010, 12:26:09 PM1/27/10
to django-d...@googlegroups.com
> --
> You received this message because you are subscribed to the Google Groups
> "Django developers" group.
> To post to this group, send email to django-d...@googlegroups.com.
> To unsubscribe from this group, send email to
> django-develop...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-developers?hl=en.
>

That one may be the one I'm thinking of (I've apparently seen it
before anyways), but I seem to recall one with a patch on it.

Reply all
Reply to author
Forward
0 new messages