Commits

Mark Lavin committed f429538

Later binding of new widget attributes.

Comments (0)

Files changed (1)

selectable/forms/widgets.py

         self.lookup_class = lookup_class
         self.allow_new = kwargs.pop('allow_new', False)
         super(AutoCompleteWidget, self).__init__(*args, **kwargs)
-        # New attrs
-        url = lookup_class.url()
-        self.attrs[u'data-selectable-url'] = url
-        self.attrs[u'data-selectable-type'] = 'text'
-        self.attrs[u'data-selectable-allow-new'] = str(self.allow_new).lower()
 
+    def build_attrs(self, extra_attrs=None, **kwargs):
+        attrs = super(AutoCompleteWidget, self).build_attrs(extra_attrs, **kwargs)
+        attrs[u'data-selectable-url'] = self.lookup_class.url()
+        attrs[u'data-selectable-type'] = 'text'
+        attrs[u'data-selectable-allow-new'] = str(self.allow_new).lower()
+        return attrs
 
 class AutoCompleteSelectWidget(forms.MultiWidget):
 
         super(AutoComboboxWidget, self).__init__(lookup_class, *args, **kwargs)
         self.attrs[u'data-selectable-type'] = 'combobox'
 
+    def build_attrs(self, extra_attrs=None, **kwargs):
+        attrs = super(AutoComboboxWidget, self).build_attrs(extra_attrs, **kwargs)
+        attrs[u'data-selectable-type'] = 'combobox'
+        return attrs
+
 
 class AutoComboboxSelectWidget(forms.MultiWidget):
 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.