@register.inclusion_tag("form_tools/render_field.html") def render_field(field,attributes=''): """ render a field with its errors, optionally passing in attributes eg.: {% render_field form.name "cols=40,rows=5,class=text,tabindex=2" %} this is equivalent to

{{form.name.errors}}

{{ form.name }} but will also add the custom attributes """ return {'errors':field.errors,'widget':make_widget(field,attributes)} def make_widget(field,attributes): attr = {} if attributes: attrs = attributes.split(",") if attrs: for at in attrs: key,value = at.split("=") attr[key] = value return field.as_widget(attrs=attr) ## render_field.html {% if errors %}

{{ errors }}

{% endif %} {{ widget }}