code: def iff(self, *args, **kwargs):
          
          if len([x for x in kwargs.values() if x is None]):
              raise CQLEngineException("None values on iff are not allowed")
  
          clone = copy.deepcopy(self)
          for operator in args:
              if not isinstance(operator, ConditionalClause):
                  raise QueryException('{0} is not a valid query operator'.format(operator))
              clone._conditional.append(operator)
  
          for arg, val in kwargs.items():
              if isinstance(val, Token):
                  raise QueryException("Token() values are not valid in conditionals")
  
              col_name, col_op = self._parse_filter_arg(arg)
              try:
                  column = self.model._get_column(col_name)
              except KeyError:
                  raise QueryException("Can't resolve column name: '{0}'".format(col_name))
  
              if isinstance(val, BaseQueryFunction):
                  query_val = val
              else:
                  query_val = column.to_database(val)
  
              operator_class = BaseWhereOperator.get_operator(col_op or 'EQ')
              operator = operator_class()
              clone._conditional.append(WhereClause(column.db_field_name, operator, query_val))
  
          return clone
docs: Adds IF statements to queryset