Я использую стандартную модель User и расширение UserProfile:
class UserProfile(models.Model):
user = models.OneToOneField(User)
avatar = models.ImageField('Фотография', upload_to = 'users/', null=True)
description = models.CharField('О себе', max_length = 300, blank = True)
telephone = models.CharField('Телефон', max_length = 11, blank = True)
city = models.ManyToManyField(City)
street_house = models.CharField('Улица, дом', max_length = 35, blank = True)
flat = models.PositiveIntegerField('Квартира', null=True)
def __unicode__(self):
return self.user