On Dec 24, 4:24 pm, hotani <[email protected]> wrote:
> I have close to 600 users split by 20 or so offices. We have a
> helpdesk form (using ModelForm) which displays an initial user list
> based on the office, or no users if an office is not selected.
>
> An AJAX function on the front end dynamically changes users in the
> drop-down based on the office selection. An admin can change the
> office which will display a new set of users to choose from.
>
> Everything is fine till it comes to django validating the form. Since
> the user selection coming in for processing may not have been one of
> the initial choices, I keep getting the dreaded "That choice is not
> one of the available choices" error.
>
> I can hack this up by first sending all users to the field, then
> erasing and resetting the display on the front end but would like a
> more "standard" solution.
>
> Using clean_user(self) does not work - I can throw errors from there
> but don't seem to have a way to tell django "this value is OK,
> dammit!"
>
> ??
You could try dynamically changing the field choices in the form's
__init__ method on post. Something like:
class MyForm(forms.ModelForm):
def __init__(self, data, *args, **kwargs):
super(MyForm, self).__init__(data, *args, **kwargs)
if data:
office = data['office']
users = office.user_set.all() # or whatever
self.fields['users'].choices = [(u.id, u.name) for u in
users]
--
DR.
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.