Opened 8 years ago
Last modified 8 years ago
#28058 closed Bug
Empty Select widget (no choices) evaluates to False — at Initial Version
Description ¶
Hey guys,
I'm not sure I catched a bug, but I discovered a change between Django==1.10.6
and 1.11.
When you initialize a form with a Select
widget, and the select widget has no choices (basically an empty tuple), when evaluating the field with bool()
, it will evaluate to False
. This causes the django_widget_tweaks
module not to render a widget when trying to modify it from within a template, as it uses a bool-like evaluation to check if anything is passed to the set_attr.
code to reproduce:
from django import forms class MyForm(forms.Form): select = forms.ChoiceField(choices=()) x = MyForm() for item in x: print(bool(item))
It will print True
with Django==1.10.6
, and False
with Django==1.11
the template code that fails to render with Django==1.11
{{ widget|set_attr('style:width: 100%') }}
Like I said, I'm not sure if this change is intended, nevertheless I reported it. Please let me know if this is intended, so I can let the creator of django_widget_tweaks
know.
Cheers