text: from django.contrib.auth.models import AbstractUser
  from django.db.models import CharField
  from django.urls import reverse
  from django.db import models
  from django.utils.translation import ugettext_lazy as _
  
  class User(AbstractUser):
  
      GENDER_CHOICE = {
          ('male','Male'),
          ('female','Femail'),
          ('not-specified','Not specified')
  
      }
  
      # First Name and Last Name do not cover name patterns
      # around the globe.
      profile_image = models.ImageField(null=True)
      name = CharField(_("Name of User"), blank=True, max_length=255)
      website = models.URLField(null=True)
      bio = models.TextField(null=True)
      phone = models.CharField(max_length=140, null = True)
      gender = models.CharField(choices = GENDER_CHOICE, max_length = 80, null=True)
      followers = models.ManyToManyField("self")
      following = models.ManyToManyField("self")
  
      def __str__(self):
          return self.username
  
      def get_absolute_url(self):
          return reverse("users:detail", kwargs={"username": self.username})
  