title: raw_id_fields for modelforms
body: <p>I have a modelform which has one field that is a ForeignKey value to a model which as 40,000 rows. The default modelform tries to create a select box with 40,000 options, which, to say the least is not ideal. Even more so when this modelform is used in a formset factory!</p>
  
  <p>In the admin, this is easiely avoidable by using "<code>raw_id_fields</code>", but there doesn't seem to be a modelform equivalent. How can I do this?</p>
  
  <p>Here is my modelform:</p>
  
  <pre><code>class OpBaseForm(ModelForm):
  
      base = forms.CharField()
  
      class Meta:
          model = OpBase
          exclude = ['operation', 'routes']
          extra = 0
          raw_id_fields = ('base', )   #does nothing
  </code></pre>
  
  <p>The first bolded line works by not creating the huge unwieldy selectbox, but when I try to save a fieldset of this form, I get the error: <strong>"OpBase.base" must be a "Base" instance.</strong> In order for the modelform to be saved, 'base' needs to be a Base instance. Apparently, a string representation of a Base primary key isn't enough (at least not automatically). I need some kind of mechanism to change the string that is given my the form, to a Base instance. And this mechanism has to work in a formset. Any ideas? If only <code>raw_id_fields</code> would work, this would be easy as cake. But as far as I can tell, it only is available in the admin.</p>