title: Removing a fields from a dynamic ModelForm
body: <p>In a ModelForm, i have to test user permissions to let them filling the right fields :  </p>
  
  <p>It is defined like this:  </p>
  
  <pre><code>class TitleForm(ModelForm):    
      def __init__(self, user, *args, **kwargs):
          super(TitleForm,self).__init__(*args, **kwargs)            
          choices = ['','----------------']
          # company
          if user.has_perm("myapp.perm_company"): 
              self.fields['company'] = forms.ModelChoiceField(widget=forms.HiddenInput(),
                  queryset=Company.objects.all(), required=False) 
              choices.append(1,'Company')
          # association
          if user.has_perm("myapp.perm_association")
              self.fields['association'] =
              forms.ModelChoiceField(widget=forms.HiddenInput(),
                  queryset=Association.objects.all(), required=False)
              choices.append(2,'Association')
          # choices
          self.fields['type_resource'] = forms.ChoiceField(choices = choices)
  
      class Meta:
          Model = Title  
  </code></pre>
  
  <p>This ModelForm does the work : i hide each field on the template and make them appearing thanks to javascript...<br>
  The problem is this ModelForm is that each field defined in the model will be displayed on the template.<br>
  I would like to remove them from the form if they are not needed:<br>
  <strong>exemple : if the user has no right on the model Company, it won't be used it in the rendered form in the template.</strong></p>
  
  <p>The problem of that is you have to put the list of fields in the Meta class of the form with <strong>fields</strong> or <strong>exclude</strong> attribute, but i don't know how to manage them dynamically.</p>
  
  <p>Any Idea??<br>
  Thanks by advance for any answer.</p>