Re: Next previous links from a query set / generi views
On Feb 8, 2010, at 7:56 AM, eaman wrote:
>> I'm up to code those two methods...
> If some one is interested in this thread I managed to code
> these two methods: get_next | get_prev
> in order to get a previous or next item in a set right from my model:
> - http://dpaste.com/155961/
Now that you've got a date attribute, why not use that for next and
previous?
If you don't want to do that, you still might consider returning a
real object instance, and then giving the model a get_absolute_url()
method and calling that in the template. That will save you hardcoding
the links in the template.
But if it's just an id you want, the following might be more efficient:
def get_next(self):
all_ids = Foto.objects.filter(galleria = self.galleria,
id__gt=self.id).values_list("id",flat=True).order_by("id")
try:
return min(all_ids)
except ValueError:
return None
Then reverse that (id__lt=self.id and use the max python function) for
get_prev()
Hope that's helpful,
Eric
>
> - Is there a better way to get the highest 'previous' item then
> using
> aggregate(Max('id')) ?
>
> - I guess the if /else conditional loop that should check the
> existence of the prev | next item is suboptimal...
>
> /eaman
>
> --
> 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+unsubscribe@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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home