[Fixed]-Validating a Django field dependently on context

1👍

✅

Overide the __init__ of the TeamUsersForm and access request there.

class TeamUsersForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        self.request = kwargs.pop('request')
        super().__init__(*args, **kwargs)
        self.fields['users'] = forms.ModelMultipleChoiceField(queryset=User.objects.filter(self.request.user.organization), required=False)

This implies that when you instantiate your form, you should it this way:

# somewhere in your views.py, probably

f = TeamUsersForm(request.POST, request=request)

Leave a comment