  
          try:
              if args:
                  # If we have any none kwargs then assume the last represents the primrary key
                  instance = model.objects.get(pk=args[-1], **kwargs)
              else:
                  # Otherwise assume the kwargs uniquely identify the model
                  filtered_keywords = kwargs.copy()
                  if BaseRenderer._FORMAT_QUERY_PARAM in filtered_keywords:
                      del filtered_keywords[BaseRenderer._FORMAT_QUERY_PARAM]
 
</s> remove                 instance = model.objects.get(pk=args[-1], **kwargs)
 </s> add                 self.model_instance = model.objects.get(pk=args[-1], **kwargs) </s> remove                 instance = model.objects.get(**kwargs)
 </s> add                 self.model_instance = model.objects.get(**kwargs) </s> remove                 instance = model.objects.get(**filtered_keywords)
 </s> add                 self.model_instance = model.objects.get(**filtered_keywords) </s> remove                 setattr(instance, key, val)
 </s> add                 setattr(self.model_instance, key, val) </s> remove         form = super(ModelResource, self).get_bound_form(data, files, method=method)
        
        # Use an explict Form if it exists
        if form:
            return form

        elif self.model:
 </s> add         if not form and self.model:
                self.model_instance = model.objects.get(pk=args[-1], **kwargs)
  
          try:
              if args:
                  # If we have any none kwargs then assume the last represents the primrary key
                self.model_instance = model.objects.get(pk=args[-1], **kwargs)
              else:
                  # Otherwise assume the kwargs uniquely identify the model
                  filtered_keywords = kwargs.copy()
                  if BaseRenderer._FORMAT_QUERY_PARAM in filtered_keywords:
                      del filtered_keywords[BaseRenderer._FORMAT_QUERY_PARAM]
keep keep keep keep replace keep keep keep keep keep
 FIX: ModelViews can have Resources whose models have unique fields.

ReadModelMixin and UpdateModelMixin store model instance as a property. This allows ModelResource to bind the ModelForm using the model instance making the form validate the input data against the model instance and not a brand new instance. When the latter happened and the model used unique fields, the form validation failed whenever a PUT was maintaining the previuos value of the unique field. 
djangorestframework/mixins.py