def include(self, *fields, **kwargs):
clone = self._clone()<EOL>if self.query.filter_is_sticky:<EOL><INDENT>clone.query.filter_is_sticky = True<EOL><DEDENT>clone._include_limit = kwargs.pop('<STR_LIT>', None)<EOL>assert not kwargs, '<STR_LIT>'<EOL>if fields == (None, ):<EOL><INDENT>for field in clone._includes.keys():<EOL><INDENT>clone.query._annotations.pop('<STR_LIT>'.format(field.name), None)<EOL><DEDENT>clone._includes.clear()<EOL>return clone<EOL><DEDENT>for name in fields:<EOL><INDENT>ctx, model = clone._includes, clone.model<EOL>for spl in name.split('<STR_LIT>'):<EOL><INDENT>field = model._meta.get_field(spl)<EOL>if isinstance(field, ForeignObjectRel) and field.is_hidden():<EOL><INDENT>raise ValueError('<STR_LIT>'.format(field))<EOL><DEDENT>model = field.related_model<EOL>ctx = ctx.setdefault(field, OrderedDict())<EOL><DEDENT><DEDENT>for field in clone._includes.keys():<EOL><INDENT>clone._include(field)<EOL><DEDENT>return clone<EOL>
Return a new QuerySet instance that will include related objects.

If fields are specified, they must be non-hidden relationships.

If select_related(None) is called, clear the list.