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