def __getitem__(self, int_or_slice):
ret = self._wrapper(list.__getitem__(self, int_or_slice))<EOL>if isinstance(int_or_slice, int):<EOL><INDENT>return self._wrapper(ret)<EOL><DEDENT>elif isinstance(int_or_slice, slice):<EOL><INDENT>return map(self._wrapper, ret)<EOL><DEDENT>
Note to self for future--django's templating system does some
        perhaps rather silly voodoo to try __getattr__, __getitem__ when you
        reference object attributes in templates, and if your custom ORM
        throws custom errors, django might not handle those correctly, leading
        to difficult-to-debug issues. Better to let python throw its own
        errors from operations, which django handles well.