title: Access instance passed to ModelForm from clean(self) method
body: <pre><code>class Pair(models.Model):
      first = models.ForeignKey(User, related_name='pair_first')
      second = models.ForeignKey(User, related_name='pair_second')
  
  class PairForm(forms.ModelForm):
      class Meta:
          model = Pair
          fields = ('second',)
  
      def clean(self):
          first = None # how can I get first?
          second = self.cleaned_data.get("second")
  
          if (first == second):
              raise ValidationError("You can't pair with yourself, silly.")
  
  def pair_create(request):
      if request.method == 'POST':
          pair = Pair()
          pair.first = request.user
          form = PairForm(instance=pair, data=request.POST)
          if form.is_valid():
              form.save();
              return HttpResponseRedirect(reverse('somewhere'))
      else:
          form = PairForm()
  
      return render_to_response('something.html', {
          'form': form,
      }, context_instance=RequestContext(request))
  </code></pre>
  
  <p>A logged-in user wants to pair up with another user.  They are shown a form with a dropdown.  If they choose themselves, raise a validation error.</p>
  
  <p>Question: in PairForm's <code>clean(self)</code> method, how can I access the user I set on the Pair which I gave to the PairForm?</p>
  
  <p>Bonus question: should that be <code>if (first is second)</code> instead of <code>if (first == second)</code>?</p>