title: serializer.data throwing AttributeError: 'str' object has no attribute '_meta'
body: <p>My serializer doesn't throw an error but any time I try and use serializer.data I get AttributeError: 'str' object has no attribute '_meta'. I did a set trace and confirmed that the type is Contact.</p>
  
  <pre><code> File "/test/user_profile/views.py", line 97, in retrieve
      return Response(serializer.data)
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/serializers.py", line 531, in data
      ret = super(Serializer, self).data
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/serializers.py", line 262, in data
      self._data = self.to_representation(self.instance)
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/serializers.py", line 483, in to_representation
      fields = self._readable_fields
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
      res = instance.__dict__[self.name] = self.func(instance)
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/serializers.py", line 377, in _readable_fields
      field for field in self.fields.values()
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/serializers.py", line 363, in fields
      for key, value in self.get_fields().items():
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/serializers.py", line 983, in get_fields
      info = model_meta.get_field_info(model)
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/utils/model_meta.py", line 42
  
  
  ----------
  
  
  , in get_field_info
      reverse_relations = _get_reverse_relationships(opts)
    File "/home/will/virtualenvs/generic_api/lib/python3.5/site-packages/rest_framework/utils/model_meta.py", line 146, in _get_reverse_relationships
      not get_remote_field(relation.field).through._meta.auto_created
  AttributeError: 'str' object has no attribute '_meta'
  </code></pre>
  
  <p>Here's my Model</p>
  
  <pre><code>class Contact(models.Model):
      SUBSCRIPTION_LEVEL = {
          0: 'Both',
          1: 'Monitoring Event',
          2: 'DVR Down'
      }
  
      id = models.AutoField(primary_key=True, db_column='Id')
      user = models.ForeignKey(User, db_column='UserId')
      title = models.CharField(default='', max_length=20, blank=True, db_column='Title')
      email_one = models.CharField(default='', max_length=75, blank=True, db_column='EmailOne')
      email_two = models.CharField(default='', max_length=75, blank=True, db_column='EmailTwo')
      subscription_level = models.IntegerField(default=0, blank=True, db_column='SubscriptionLevel')
      phone_one = models.CharField(default='', max_length=15, blank=True, db_column='PhoneOne')
      phone_two = models.CharField(default='', max_length=15, blank=True, db_column='PhoneTwo')
      company = models.CharField(default='', max_length=50, blank=True, db_column='Company')
      notes = models.CharField(default='', max_length=500, blank=True, db_column='Notes')
      vehicle_description = models.CharField(default='', max_length=200, blank=True, db_column='VehicleDescription')
      vehicle_plates = models.CharField(default='', max_length=20, blank=True, db_column='VehiclePlates')
      is_active = models.BooleanField(default=True, blank=False, db_column='IsActive')
  </code></pre>
  
  <p>Here's the view</p>
  
  <pre><code>class ContactViewSet(ModelViewSet):
      permission_classes = (permissions.IsAuthenticated,)
      parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
      serializer_class = ContactSerializer
  
      def retrieve(self, request, pk=None):
          queryset = Contact.objects.filter(is_active=True)
  
          if not self.request.user.is_staff:
              queryset = queryset.filter(contacts__user_id=self.request.user.id)
  
          contact = get_object_or_404(queryset, id=pk)
          serializer = ContactSerializer(contact)
          return Response(serializer.data)
  </code></pre>
  
  <p>And my serializer</p>
  
  <pre><code>class ContactSerializer(serializers.ModelSerializer):
      first_name = serializers.CharField(source='user.first_name', required=False)
      last_name = serializers.CharField(source='user.last_name', required=False)
  
      class Meta:
          model = Contact
          fields = ['id', 'user',  'first_name', 'last_name', 'title', 'email_one', 'email_two', 'company', 'notes', 'subscription_level',
                    'phone_one', 'phone_two', 'vehicle_description', 'vehicle_plates', 'is_active']
  </code></pre>
  
  <p>I've been playing with the serializer, even removing the fields or just setting fields = '<strong>all</strong>' but I haven't been able to figure out why this is happening. </p>