If you did '%s:%s' % (self.pk, self.counter) you'd get 0:1, 1:0 which would result in different etags. If you do str(0 + 1) or str(1 + 0) you get the same etag.