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

  1. Custom CSS class in Form with template tag filter by kegan 6 years, 2 months ago
  2. Add CSS class template filter by lazerscience 4 years, 9 months ago
  3. tag: render form field by crucialfelix2 5 years, 9 months ago
  4. Pygmentify a code using template filter by tamizhgeek 4 years, 3 months ago
  5. Dynamically add css-classes to formfields by Lacour 4 years, 1 month ago

Comments

fernandogrd (on October 19, 2011):

ws, very interesting features in django-widget-tweaks, but it applies only to fields, this one applies for form itself.

#

Please login first before commenting.