On Fri, Jul 5, 2013 at 4:39 PM, MacVictor <[email protected]> wrote:
> How to create this table used formset and extra=3?
>
> Table:
>
> | my name first column | second column | third column | fourth column |
>
> | formset1.field1.label | formset1.field1 | formset2.field1 |
> formset3.field1 |
>
> | formset1.field2.label | formset1.field2 | formset2.field2 |
> formset3.field2 |
>
> | formset1.field3.label | formset1.field3 | formset2.field3 |
> formset3.field3 |
>
> | formset1.field4.label | formset1.field4 | formset2.field4 |
> formset3.field4 |
>
> In view I create standard formset:
>
> def my_view(request, id_object):
>     getobject = get_object_or_404(Model, id=id_object)
>     FormSetInit = inlineformset_factory(Model, Model2, form=FormModel2,
> extra=3)
>     FormSet = FormSetInit(instance=getobject, prefix='model2')
>     response = {}
>     response['Formset'] = FormSet
>     return render_to_response('my_template.html', response)
>
>
> In template 'my_template.html' i try used this:
>
>
> <table>
> {% for form in Formset %}
>   {% if forloop.counter == 1 %}
>     {% for field in form %}
>       {% if forloop.counter < 8 %}
>         <tr>
>           <td class="first">{{ field.label }}</td>
>           <td>{{ field }}</td>
>           <td>{{ field }}</td>
>           <td class="last">{{ field }}</td>
>           {% if forloop.counter !=  7 %}
>             </tr>
>           {% endif %}
>       {% else %}
>         {{ field }}
>         {% if forloop.last %} </tr> {% endif %}
>       {% endif %}
>     {% endfor %}
>   {% endif %}
> {% endfor %}
> </table>
>
> But this not a good idea.. :/

Do the fields have fixed names?

<th> ... </th>
<tr>
{% for form in formset %}
<td>{{ form.field1.label }}</td><td>{{ form.field1 }}</td>
{% endfor
</tr>
<tr>
{% for form in formset %}
<td>{{ form.field2.label }}</td><td>{{ form.field2 }}</td>
{% endfor
</tr>

and so on.

For added points you could pass a list of field names in the order you
want them to appear, and use a 3rd party dict_get/attr_get template
tag to eliminate the duplication in the template. Something like this
should be in your toolkit:

http://push.cx/2007/django-template-tag-for-dictionary-access

Cheers

Tom

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to