title: Django Faking Required Fields
body: <p>I'd like to know if there's any to way to make a nullable (<code>null=True</code>) field be required when creating models (or saving)?</p>
  
  <p>As a superuser, I'd like to be able to leave certain fields with null while other staff members won't be able to.</p>
  
  <p>Is there any way to do something like that?</p>
  
  <p>Thanks in advance.</p>
  
  <p><br><strong>Edit:</strong></p>
  
  <p>Clearly I'm doing something wrong.</p>
  
  <p>I have this exact <code>__init__</code> for both <code>StudentChangeForm</code> and <code>StudentCreationForm</code>:</p>
  
  <pre><code>def __init__(self, *args, **kwargs):
      self.user = kwargs.pop('user', None)
      super(StudentCreationForm, self).__init__(*args, **kwargs)  # StudentChangeForm in StudentChangeForm (obviously)
  
      if self.user.is_superuser:
          self.fields['picture'].required = False
  </code></pre>
  
  <p>I also have a <code>StudentAdmin</code> class which represents the <code>Student</code> model in my admin:</p>
  
  <pre><code>class StudentAdmin(UserAdmin):
      form = StudentChangeForm
      add_form = StudentCreationForm
  
      ...
  
      class Meta:
          model = Student
  
      def get_form(self, request, obj=None, **kwargs):
          kwargs.update({'user': request.user})
          # What's supposed to be here?
  </code></pre>
  
  <p>I tried already so many variations in <code>get_form</code> and can't seem to get the right one.</p>
  
  <p>Sorry for troubling you.</p>