179 """ |
179 """ |
180 widget = self.get_widget(form) |
180 widget = self.get_widget(form) |
181 try: |
181 try: |
182 return widget.render(form, self, renderer) |
182 return widget.render(form, self, renderer) |
183 except TypeError: |
183 except TypeError: |
184 warn('widget.render now take the renderer as third argument, please update %s implementation' |
184 warn('[3.3] %s: widget.render now take the renderer as third argument, ' |
185 % widget.__class__.__name__, DeprecationWarning) |
185 'please update implementation' % widget, DeprecationWarning) |
186 return widget.render(form, self) |
186 return widget.render(form, self) |
187 |
187 |
188 def vocabulary(self, form): |
188 def vocabulary(self, form): |
189 """return vocabulary for this field. This method will be called by |
189 """return vocabulary for this field. This method will be called by |
190 widgets which desire it.""" |
190 widgets which desire it.""" |
191 if self.choices is not None: |
191 if self.choices is not None: |
192 if callable(self.choices): |
192 if callable(self.choices): |
193 try: |
193 try: |
194 vocab = self.choices(form=form) |
194 vocab = self.choices(form=form) |
195 except TypeError: |
195 except TypeError: |
196 warn('vocabulary method (eg field.choices) should now take ' |
196 warn('[3.3] vocabulary method (eg field.choices) should now take ' |
197 'the form instance as argument', DeprecationWarning) |
197 'the form instance as argument', DeprecationWarning) |
198 vocab = self.choices(req=form._cw) |
198 vocab = self.choices(req=form._cw) |
199 else: |
199 else: |
200 vocab = self.choices |
200 vocab = self.choices |
201 if vocab and not isinstance(vocab[0], (list, tuple)): |
201 if vocab and not isinstance(vocab[0], (list, tuple)): |