﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
28058	Empty Select widget (no choices) evaluates to False	László Károlyi	nobody	"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 underlying problem is that `len()` for a Boundfield with no choices will return 0 in the newer version, whereas it returns 1 in the older version.

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"	Bug	closed	Forms	1.11	Release blocker	fixed	select widget		Accepted	1	0	0	0	0	0
