From 9f0e4937646dc16b81f6fe802013963305669007 Mon Sep 17 00:00:00 2001 From: Alexandr Levayev Date: Mon, 10 Aug 2015 15:42:14 +0600 Subject: [PATCH] Supporting multi widget. --- .../templatetags/bootstrap_tags.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/django_forms_bootstrap/templatetags/bootstrap_tags.py b/django_forms_bootstrap/templatetags/bootstrap_tags.py index f167e89..60d5f2f 100644 --- a/django_forms_bootstrap/templatetags/bootstrap_tags.py +++ b/django_forms_bootstrap/templatetags/bootstrap_tags.py @@ -1,4 +1,5 @@ from django import template +from django.forms import widgets from django.template import Context from django.template.loader import get_template @@ -9,11 +10,19 @@ def _preprocess_fields(form): for field in form.fields: name = form.fields[field].widget.__class__.__name__.lower() + if not name.startswith("radio") and not name.startswith("checkbox"): - try: - form.fields[field].widget.attrs["class"] += " form-control" - except KeyError: - form.fields[field].widget.attrs["class"] = " form-control" + field_widgets = [form.fields[field].widget] + + if isinstance(form.fields[field].widget, widgets.MultiWidget): + field_widgets = form.fields[field].widget.widgets + + for widget in field_widgets: + if 'class' in widget.attrs: + widget.attrs['class'] += " form-control" + else: + widget.attrs['class'] = " form-control" + return form