Как я могу обновить одно поле в Django rest framework в абстрактной модели пользователя

как я могу обновить одно поле в Django rest framework в абстрактной модели пользователя может кто-нибудь помочь мне я хочу обновить device_id в моей абстрактной модели пользователя я хочу обновить только поле device_id без обновления других полей и я не знаю я должен создать другое представление или нет или я должен добавить обновление в сериализаторы вот мой код

models.py

class User(AbstractUser):
is_student=models.BooleanField(default=False)
is_teacher=models.BooleanField(default=False)
mobile_no=models.CharField(max_length=200,blank=True)
device_id=models.CharField(max_length=200,blank=True)

USERNAME_FIELD = 'username'

def __str__(self):
    return self.username

class Meta:
    verbose_name_plural="1.User"

@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False,**kwargs):
    if created:
       Token.objects.create(user=instance)

serializers.py

class UserSerializer(serializers.ModelSerializer):
class Meta:
    model=User
    fields=['id','username','mobile_no','is_student','device_id']

views.py

class StudentSignupView(generics.GenericAPIView):
serializer_class=StudentSignupSerializer
def post(self,request,*args,**kwargs):
    serializer=self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    user=serializer.save()
    return Response({
        "user": UserSerializer(user, context=self.get_serializer_context()).data,
        "token": Token.objects.get(user=user).key,
        # "message":"account created successfully"
    })


class TeacherSignupView(generics.GenericAPIView):
    serializer_class=TeacherSignupSerializer
    def post(self,request,*args,**kwargs):
        serializer=self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        user=serializer.save()
        return Response({
        "user": UserSerializer(user, context=self.get_serializer_context()).data,
            "token": Token.objects.get(user=user).key,
            # "message":"account created successfully"
        })

 class CustomAuthToken(ObtainAuthToken):
    def post(self,request,*args,**kwargs):
        serializer=self.serializer_class(data=request.data, context={'request':request})
        serializer.is_valid(raise_exception=True)
        user=serializer.validated_data['user']
        token,created=Token.objects.get_or_create(user=user)
        return Response({
            'token':token.key,
            'user':UserSerializer(user, context=self.get_serializer_context()).data,
            'is_student':user.is_student
         })

Вы можете создать представление следующим образом(ref)

from django.views.generic.edit import UpdateView
from myapp.models import Author
from django.contrib.auth import get_user_model

User = get_user_model()

class UserUpdateView(UpdateView):
    model = User
    fields = ['device_id']
    
Вернуться на верх