Querysets are not serializable out-of-the-box. If you try list(self.items) instead of just self.items, that should work as long as the items themselves are JSON-serializable.
Update: It will raise an exception even if it isn’t empty. I don’t think it’ll be accepted as a Django bug, though of course you can try; the simplest answer is to force evaluation using list(qs), as I’ve already said.