Вы можете динамически изменять форму, как вам угодно:
class MyForm(forms.Form):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for item in Item.objects.all():
self.fields[item.name] = forms.BooleanField()
Я полагаю, что опасность заключается в том, что состояние базы данных изменяется, когда пользователь отправляет форму, и новая форма инициализируется новыми полями, которыепредыдущая форма не имела.