def delete_item2(self, tablename, key, expr_values=None, alias=None,
                     condition=None, returns=NONE, return_capacity=None,
                     return_item_collection_metrics=NONE, **kwargs):
        keywords = {
            'TableName': tablename,
            'Key': self.dynamizer.encode_keys(key),
            'ReturnValues': returns,
            'ReturnConsumedCapacity': self._default_capacity(return_capacity),
            'ReturnItemCollectionMetrics': return_item_collection_metrics,
        }
        values = build_expression_values(self.dynamizer, expr_values, kwargs)
        if values:
            keywords['ExpressionAttributeValues'] = values
        if alias:
            keywords['ExpressionAttributeNames'] = alias
        if condition:
            keywords['ConditionExpression'] = condition
        result = self.call('delete_item', **keywords)
        if result:
            return Result(self.dynamizer, result, 'Attributes')