A generator is a kind of iterator. An iterator is a kind of iterable object and, like any other repeatable one,
You can iterate through each element with a for loop:
for vote in Vote.objects.get_top(myModel, limit=10, reversed=False): print v.name, vote
If you need to access elements by index, you can convert them to a list:
top_votes = list(Vote.objects.get_top(myModel, limit=10, reversed=False)) print top_votes[0]
However, you can iterate over only one iterator instance once (as opposed to a more general iterative object, such as a list):
>>> top_votes_generator = Vote.objects.get_top(myModel, limit=3) >>> top_votes_generator <generator object at 0x022f7AD0> >>> list(top_votes_generator) [<Vote: a>, <Vote: b>, <Vote: c>] >>> list(top_votes_generator) []
For more information on creating custom generators, see http://docs.python.org/tutorial/classes.html#generators
source share