You can create your form dynamically in your view (well, actually, I prefer to keep the code outside the view in its own function and just call it in the view, but these are just the details)
I did this in one project:
user_choices = [(1, 'something'), (2, 'something_else')] fields['choice'] = forms.ChoiceField( choices=user_choices, widget=forms.RadioSelect, ) MyForm = type('SelectableForm', (forms.BaseForm,), { 'base_fields': fields }) form = MyForm()
Obviously, you need to create user_choices depending on the current user and add any field that you need and options, but this is the basic principle, I will leave everything else as a reader exercise.
Davor lucic
source share