          # Method overloading - change the method and remove the param from the content.
          if (self._METHOD_PARAM and
              self._METHOD_PARAM in self._data):
              self._method = self._data[self._METHOD_PARAM].upper()
              self._data.pop(self._METHOD_PARAM)
  
          # Content overloading - modify the content type, and force re-parse.
          if (self._CONTENT_PARAM and
              self._CONTENTTYPE_PARAM and
              self._CONTENT_PARAM in self._data and
 
</s> remove             return ModelField(model_field=model_field)
 </s> add             ret = ModelField(model_field=model_field)

        if model_field.default:
            ret.required = False

        return ret </s> remove             return  # TODO Consider validation behaviour, 'required' opt etc...
 </s> add             if self.required:
                raise ValidationError(self.error_messages['required'])
            return </s> remove @api_view(['GET', 'POST'])
 </s> add @api_view(['GET', 'POST', 'PUT'])
          # Method overloading - change the method and remove the param from the content.
          if (self._METHOD_PARAM and
              self._METHOD_PARAM in self._data):
              self._method = self._data[self._METHOD_PARAM].upper()

  
          # Content overloading - modify the content type, and force re-parse.
          if (self._CONTENT_PARAM and
              self._CONTENTTYPE_PARAM and
              self._CONTENT_PARAM in self._data and
keep keep keep keep replace keep keep keep keep keep
 Fix issue where required fields were not being properly validated.  Also make model fields with a default value be not required 
rest_framework/request.py