Login

Custom CSS class in Form with template tag filter

Author:
fernandogrd
Posted:
October 18, 2011
Language:
Python
Version:
1.2
Tags:
filter templatetag css form class
Score:
1 (after 1 ratings)

It was based in: http://djangosnippets.org/snippets/1586/

Instead of doing this: 'attribute_name = forms.CharField(widget=forms.TextInput(attrs={'class':'special'}))`

You can do this in your template:

{{ form|cssclass:"attribute_name:special_class"|cssclass:"other_attribute:special_class" }}

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# -*- coding:utf-8 -*-
from django import template

register = template.Library()


@register.filter
def cssclass(form, name_arg):
    """
    Replace the attribute css class for Field 'name' with 'arg'.
    name_args expects format: "attribute_name:special_class"
    """
    name, arg = name_arg.split(':')
    form.fields[name].widget.attrs['class'] = arg

    return form

More like this

Comments

fernandogrd (on October 19, 2011):
<p>ws, very interesting features in django-widget-tweaks, but it applies only to fields, this one applies for form itself. </p>

#

Please login first before commenting.