title: TastyPie data validation issue
body: <p>I wonder what is the proper way of using TastyPie validation.
  I have following resource and model:</p>
  
  <pre><code>from tastypie.resources import ModelResource
  
  class Station(models.Model):
      name = models.CharField(max_length=20)
      city = models.ForeignKey(City)
  
  class StationResource(ModelResource):
      city = fields.ForeignKey(CityResource, 'city')
  
      class Meta:
          queryset = caModels.Station.objects.all()
          resource_name = 'Station'
          authorization = Authorization()
          validation=FormValidation(form_class=StationForm)
          max_limit = None    
  </code></pre>
  
  <p>And I also want to use a ModelForm to validate data:</p>
  
  <pre><code>class StationForm(forms.ModelForm):    
  
      class Meta:
          model = caModels.Station
  
      def clean_city(self):
          return self.cleaned_data['city']
  </code></pre>
  
  <p>The following query works fine:</p>
  
  <pre><code>curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"city": "/resources/City/89/", "name": "station_1", &lt;and other fields here&gt;}' "http://localhost:8000/resources/Station/?format=json"
  
  HTTP/1.0 201 CREATED
  Date: Thu, 06 Feb 2014 13:10:14 GMT
  Server: WSGIServer/0.1 Python/2.7.4
  Vary: Accept, Cookie
  Content-Type: text/html; charset=utf-8
  Location: http://localhost:8000/resources/Station/3/
  </code></pre>
  
  <p>But when I remove city from request (but this field is required) instead of message 'This field is required' I get the following traceback:</p>
  
  <pre><code>Traceback (most recent call last):
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 115, in get_response
  response = callback(request, *callback_args, **callback_kwargs)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/django/views/decorators/csrf.py", line 77, in wrapped_view
  return view_func(*args, **kwargs)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/resources.py", line 217, in wrapper
  response = callback(request, *args, **kwargs)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/resources.py", line 459, in dispatch_list
  return self.dispatch('list', request, **kwargs)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/resources.py", line 491, in dispatch
  response = method(request, **kwargs)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/resources.py", line 1357, in post_list
  updated_bundle = self.obj_create(bundle, **self.remove_api_resource_names(kwargs))
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/resources.py", line 2149, in obj_create
  bundle = self.full_hydrate(bundle)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/resources.py", line 909, in full_hydrate
  value = field_object.hydrate(bundle)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/fields.py", line 732, in hydrate
  value = super(ToOneField, self).hydrate(bundle)
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/tastypie/fields.py", line 165, in hydrate
  elif self.attribute and getattr(bundle.obj, self.attribute, None):
    File "/home/ak/venv/main_env/local/lib/python2.7/site-packages/django/db/models/fields/related.py", line 389, in __get__
  raise self.field.rel.to.DoesNotExist
  DoesNotExist
  </code></pre>
  
  <p>This error happens even before I can validate the data in the form (validation is the first process of save procedure looks like).</p>
  
  <pre><code>.../tastypie/resources.py:
  
  def obj_create(self, bundle, **kwargs):
      """
      A ORM-specific implementation of ``obj_create``.
      """
      bundle.obj = self._meta.object_class()
  
      for key, value in kwargs.items():
          setattr(bundle.obj, key, value)
  
      self.authorized_create_detail(self.get_object_list(bundle.request), bundle)
      bundle = self.full_hydrate(bundle)
      return self.save(bundle)
  
  def save(self, bundle, skip_errors=False):
      self.is_valid(bundle)
      ...
  </code></pre>
  
  <p>Can somebody point me where I am wrong, or may be I missed something and this way of validation is completely wrong from TastyPie point of view?</p>