Or you can add something to your view to take care of this:

def your_view(request):
    ...
    some_subset = Model.objects.all()[:10]
    ...

Add it to 'extra_context' and you won't need to do anything trickier than this:

{% for model in some_subset %}
    some stuff
{% endfor %}



On Fri, Apr 18, 2008 at 12:56 PM, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
>
>  The way I would do it is to create a tag that creates a list object
>  using range as a template var and then use a simple for loop, the
>  usage would be:
>
>  {% range 1 10 as my_range %}
>  {% for i in my_range %}
>  {{ i }},
>  {% endfor %}
>  would return 1, 2, 3, 4, 5, 6, 7, 8, 9,
>
>  I'm going to write this up and post it to django snippets later, if
>  anyone wants it, I'll post a link.
>
>
>
>  On Apr 18, 11:47 am, Eric Abrahamsen <[EMAIL PROTECTED]> wrote:
>  > I think what people are saying here is that your number, the iteration
>  > limit, has to be coming from somewhere or something. Chances are, that
>  > something is an iterable, or can be made into an iterable very easily,
>  > and thus can be used in a for loop. Where is the number coming from?
>  >
>  > On Apr 18, 2008, at 8:23 AM, Kip Parker wrote:
>  >
>  >
>  >
>  >
>  >
>  > > I needed something like this to repeat a part of the template x times,
>  > > but I couldn't get this to work, the filter repeatedly returned the
>  > > range(0,10) so gave a recursion depth error. I may have set it up
>  > > wrong.
>  >
>  > > I ended up making a repeat tag:
>  >
>  > > def do_repeat(parser, token):
>  > >    try:
>  > >            # Splitting by None == splitting by spaces.
>  > >            tag_name, arg = token.contents.split(None, 1)
>  > >            number = int(arg)
>  > >    except ValueError:
>  > >            raise template.TemplateSyntaxError, "Repeat tag requires 
> exactly one
>  > > argument which must be a number"
>  > >    nodelist = parser.parse(('endrepeat',))
>  > >    parser.delete_first_token()
>  > >    return RepeatNode(nodelist, number)
>  >
>  > > class RepeatNode(template.Node):
>  > >    def __init__(self, nodelist, number):
>  > >            self.nodelist = nodelist
>  > >            self.number = number
>  > >    def render(self, context):
>  > >            output = self.nodelist.render(context)
>  > >            return output*self.number
>  > > register.tag('repeat', do_repeat)
>  >
>  > > but it really feels like it shouldn't be that hard. Maybe I missed the
>  > > easy way?
>  >
>  > > On Apr 15, 7:31 pm, Michael <[EMAIL PROTECTED]> wrote:
>  > >> I feel like something like this already exists somewhere, but you
>  > >> can simply
>  > >> write a filter that turns a number into a range:
>  >
>  > >> so in your templates you would have:
>  >
>  > >> {% for i in 10|range %}
>  > >> ...
>  > >> {%endfor%}
>  >
>  > >> and your template filter would simply be:
>  >
>  > >> from django.template.defaultfilters import stringfilter
>  >
>  > >> @stringfilter
>  > >> def range(value): return range(int(value))
>  >
>  > >> On Tue, Apr 15, 2008 at 12:07 PM, Kenneth Gonsalves
>  > >> <[EMAIL PROTECTED]>
>  > >> wrote:
>  >
>  > >>> On 15-Apr-08, at 9:04 PM, Darryl Ross wrote:
>  >
>  > >>>> Duke wrote:
>  > >>>>> They are looping over a list
>  > >>>>> I am looking for
>  > >>>>> for (i = 0; i < 10; i++) {
>  > >>>>>      printf("Hello,  World!);
>  > >>>>> }
>  > >>>>> link for looping statement
>  >
>  > >>>> I am not aware of any tag that will allow you to do that, out of
>  > >>>> the box. You have two options, the first is to create a custom
>  > >>>> template tag that do what you want[1]. This shouldn't really be
>  > >>>> terribly difficult to do.
>  >
>  > >>>> The second option would be to just pass in a variable into the
>  > >>>> context with a list containing the number of items of the number of
>  > >>>> times you want to loop. Using generic views, this could be done in
>  > >>>> your urls.py like:
>  >
>  > >>>> ...
>  > >>>>  ('^$', 'direct_to_template',
>  > >>>>         { 'template_name': 'homepage.html',
>  > >>>>           'extra_context': {'looper': range(10) }})
>  > >>>> ...
>  >
>  > >>>> Then you can use the standard {% for %} tag:
>  >
>  > >>>> {% for i in looper %}
>  > >>>>   {{i}}
>  > >>>> {% endfor %}
>  >
>  > >>>> [1]http://www.djangoproject.com/documentation/templates_python/
>  > >>>> #extending-the-template-system
>  >
>  > >>> where is the use case for this? I cannot conceive of any situation
>  > >>> where one would want to loop over an arbitrary number.
>  >
>  > >>> --
>  >
>  > >>> regards
>  > >>> kg
>  > >>>http://lawgon.livejournal.com
>  > >>>http://nrcfosshelpline.in/code/- Hide quoted text -
>  >
>  > - Show quoted text -
>
>
> >
>
>



-- 
portfolio: http://textivism.com/
blog: http://erikanderica.org/erik/

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

Reply via email to