Essayez de spécifier explicitement le id champ et en le marquant comme clé primaire :
class UserProfile(models.Model):
id = models.BigIntegerField(primary_key = True)
user = models.OneToOneField(User)
avatar = models.ImageField(blank=True, upload_to=get_image_path, default='/static/image/avatar/male.png')
age = models.IntegerField(default=4, validators=[MinValueValidator(3), MaxValueValidator(99)])
Django devrait automatiquement créer une séquence pour ce champ.
Il se peut que l'User clé étrangère sans clé primaire explicitement définie est source de confusion pour l'ORM, bien que ce ne soit qu'une théorie.