On Thu, Jan 14, 2010 at 6:39 PM, GoSantoni <mj.schuur...@gmail.com> wrote:
> Hi
>
> Is it possible to use extra filter on a ModelChoiceField?
>
> Tried several strategies:
>
> if photo.member == user:
>    url = forms.ModelChoiceField(queryset=Image.objects.filter())
>
> or
>    url = forms.ModelChoiceField(queryset=Image.objects.filter
> (member__id=1))
>
> or
>
> if Image.objects.filter(member__id=1):
>     url = forms.ModelChoiceField(queryset=Image.objects.filter
> (member__id=1))
>
> All fail to filter on the member / user
>
> Thanks
>

The technique I use to do forms like this is to add the queryset in
the constructor, passing in whatever I need to filter it.

Eg:

class AttachmentForm(forms.Form):
  name = forms.CharField(max_length=32)
  url = forms.ModelChoiceField(queryset=Image.objects.none())
  def __init__(self, *args, **kwargs):
    self.user = kwargs.pop('user')
    super(forms.Form, self).__init__(*args, **kwargs)
    self.fields['url'].queryset = Image.objects.filter(user=self.user)


Cheers

Tom
-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to