Thanks, it works. I'm using this in the __init__ of my form, because I'm 
subclassing ModelForm.

Bram
Richard Dahl wrote:
> You could do something like this:
>  
> f  = forms.form_for_model(modelname)
> f.base_fields['fieldname'].queryset = (query_based_on_variable)
>  
> I automatically do this for a number of forms (to enforce role-based 
> access) by looping through the base fields:
>  
> get_form(model_type, r):
> f = forms.form_for_model(model_type)
> for y in f.base_fields.iteritems():
>     if isinstance(y[1], forms.models.ModelChoiceField):
>         y[1].queryset = (y[1].queryset.model.permissible.all(role=r))
> return f
>  
> 'permissible' is a custom manager
> hth
> -richard
>  
>  
> On 4/14/08, *Bram* <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>
>     Hi all,
>
>     I'm using a ModelForm with a ModelChoiceField. I need to set the
>     queryset of this field using a variable that's passed to the form
>     constructor. I couldn't declare the field in the class itself, because
>     I don't have access to the variable at the class level. How could I
>     fix this?
>
>     Bram
>
>     >


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to