title: Django REST overrride destroy method to make user inactive
body: <p>I'm trying to first access the users table via the user foreign key present in userinformations models and later override the RetriveUpdateDestroy API view's destroy method to change the status of the user to inactive instead of deleting them. I can't seem to access the is-active field of the in built User database.</p>
  
  <p>views.py</p>
  
  <pre><code>class UserUpdateApiView(RetrieveUpdateDestroyAPIView):
  queryset = UserInformation.objects.all()
  serializer_class = UserInformationUpdateSerializer
  lookup_field = 'pk'
  lookup_url_kwarg = 'id'
  
  def destroy(self, request, *args, **kwargs):
      try:
          user = User.objects.get(pk=self.kwargs["id"])
          deleteStatusVal = False
          user.is_active = deleteStatusVal
          user.save()
          return Response(UserSerializer(user).data)
      except:
          return Response("Nope")
  </code></pre>
  
  <p>serializers.py</p>
  
  <pre><code>class UserSerializer(ModelSerializer):
  password = serializers.CharField(style={'input_type': 'password'}, write_only=True)
  email = serializers.EmailField(validators=[required])
  
  class Meta:
      model = User
      fields = ['username', 'email', 'password', 'is_active']
      extra_kwargs = {'password': {'write_only': True},
                      'is_active': {'read_only': True}}
  
  def validate(self, data):
      email = data.get('email', None)
      user = User.objects.filter(email=email).distinct()
      if user.exists():
          raise ValidationError("That email is already registered!")
      return data
  
  
  class UserInformationUpdateSerializer(ModelSerializer):
  user = UserSerializer(read_only=True)
  class Meta:
      model = UserInformation
      fields = ['user', 'first_name', 'middle_name', 'last_name', 'phone', 'date_of_birth']
  </code></pre>
  
  <p>models.py</p>
  
  <pre><code>class UserInformation(BaseModel):
  user = models.OneToOneField(User, related_name='user_id')
  first_name = models.CharField(max_length=45)
  middle_name = models.CharField(max_length=45, null=True)
  last_name = models.CharField(max_length=45)
  vendor = models.BooleanField(default=False)
  phone = models.CharField(max_length=100, validators=[
  RegexValidator(regex=r'^\+?8801?\d{9}$', message="Phone number must be entered in the format: '+8801*********'")
  ], blank=False, unique=True)
  date_of_birth = models.DateField()
  confirmation_token = models.CharField(max_length=45, null=True)
  confirmation_exp = models.DateTimeField(null=True)
  pw_reminder_token = models.CharField(max_length=45, null=True)
  pw_reminder_exp = models.DateTimeField(null=True)
  profile_pic = models.ImageField(blank=True, null=True, upload_to='profile_images/', default='Images/none/no_images.jpg')
  cover_photo = models.ImageField(blank=True, null=True, upload_to='cover_images/', default='Images/none/no_images.jpg')
  thumbnail_pic = models.ImageField(blank=True, null=True, upload_to='thumbnail_images/', default='Images/none/no_images.jpg')
  phone_verified = models.BooleanField(default=False)
  email_verified = models.BooleanField(default=False)
  reward_points = models.IntegerField(null=False)
  ref_code = models.CharField(null=True, max_length=10)
  
  def __str__(self):
      return self.user.username
  
  def delete(self, *args, **kwargs):
      self.user.delete()
      super(UserInformation, self).delete(*args, **kwargs)
  </code></pre>