diff --git a/basetheme_bootstrap/views.py b/basetheme_bootstrap/views.py index b645adb2dcde9499e5189fdee4aad5fa5f80ebfe..e15b93570e5d9723a9e4ddfaedb74eaa2ec53a94 100644 --- a/basetheme_bootstrap/views.py +++ b/basetheme_bootstrap/views.py @@ -223,15 +223,19 @@ def account_detail(request): else: is_posted = request.method == 'POST' pref = klass.get_for_user(user=request.user) + widgets_dict = dict( + (f.name, widgets.CheckboxSelectMultiple()) for f in pref._meta.get_fields() if f.many_to_many) form_prefs = forms.modelform_factory( klass, - fields=list(klass.get_allowed_fields()), + fields=list(pref.get_allowed_fields()), + widgets=widgets_dict, )(instance=pref, data=request.POST if is_posted else None) if is_posted and form_prefs.is_valid(): form_prefs.save() form_prefs = forms.modelform_factory( klass, - fields=list(klass.get_allowed_fields()), + fields=list(pref.get_allowed_fields()), + widgets=widgets_dict, )(instance=klass.get_for_user(user=request.user)) # dirty patch for time field (don't know why django doesn't express the correct type by default) for f in form_prefs.fields.values():