I have an ecommerce website that works in a classical way: people sign up, buy a product with their CC.
It uses the default Django auth system for users and registration
You could use a very simple model to keep track of them
class UserReferral(models.Model):
referrer = models.ForeignKey(User)
referred = models.ForeignKey(User)
class Meta:
unique_together = (('referrer', 'referred'),)
Then you can count how many a user has referred:
UserReferral.objects.filter(referrer=user).count()
Etc..