A site I frequently work with has the forms mostly laid out using <dl> and CSS to style it up all nicely. The newforms doesn't have a as_dl method, and my designer is pitching a bit of fit that we can't give him the pieces/parts of the form to lay out with a more complex setup.
When I looked into it, I saw that some patches to generate "as_dl" methods on newforms had been turned down. (Fine, we can add that too a subclass and work around it). I think I'm missing something about how I can hand the layout control to the designer though - telling them to just deal with what {{ form.as_ul }} about got my teeth kicked in. Is it expected that with any newforms form object you'll be able to reference it in the template with something like: {% for field in form %} <p>{{ field.label }} {{ field }}</p> {% endfor %} And does anyone have some examples where the newforms are worked up to any extent in templates? I need to learn what we can do, and I'm having a hard time finding many references to using newforms from inside of templates. -joe On 4/30/07, Malcolm Tredinnick <[EMAIL PROTECTED]> wrote: > > On Tue, 2007-05-01 at 10:49 +1000, Malcolm Tredinnick wrote: > > On Mon, 2007-04-30 at 08:47 +0200, Mario Graziosi wrote: > > > I have a form with several checkboxes created dynamically, where each > > > field has a name similar to "mycheck_xxx". From within the template I > > > don't know how many checks the form holds, since these are built > > > dynamically. How can I render them using the Django template system? > > > > > > For example, this is my Form (using newforms): > > > > > > class FormList(forms.Form): > > > def __init__(self, queues, *args, **kwargs): > > > super(FormList, self).__init__(*args, **kwargs) > > > # Create several check boxes > > > for n in range(5): > > > fieldname = 'mycheck_%d' % n > > > self.fields[fieldname] = forms.BooleanField(required=False) > > > > > > This is the template (one of several tries). Obviously, it doesn't work, > > > but it reflects what I'd like to get on my form: > > > > > > {% for fieldname in form.fields.keys %} > > > <p>{{ form.fieldname }}</p> > > > {% endfor %} > > > > Normally, once you've constructed a form class, you render it into your > > template using {{ form.as_p }} or a related method. Since you've put > > your extra fields into the normal self.fields attribute, the rendering > > method will render those fields automatically. > > > > If you want the presentation to change somehow, you write your own > > presentation method that you call. > > > > Alternatively, if you knew the name of the widgets, you could use > > {{ form.mycheck_1 }} to do really fine-grained rendering and placement, > > but if you want to loop through the list of these widgets, you will need > > to have a method on your FormList class that takes a parameter and > > returns the equivalent of my_form["mycheck_1"] (changing the string > > based on the parameter). > > Sorry, this is all a complete repeat of what JeffH wrote elsewhere in > the thread. Somehow I didn't realise I wasn't at the end of the thread > yet. :-( > > My apologies for the duplicate information. Read what JeffH wrote. He's > wise and all-knowing. > > Malcolm > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---