pass user to serializer django rest framework

# models.py
from django.db import models
from django.contrib.auth.models import User

class YourModel(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    # Add other fields as needed
# serializers.py
from rest_framework import serializers
from .models import YourModel

class YourModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = YourModel
        fields = '__all__'
# views.py
from rest_framework import generics
from .models import YourModel
from .serializers import YourModelSerializer

class YourModelAPIView(generics.RetrieveUpdateAPIView):
    serializer_class = YourModelSerializer

    def get_object(self):
        return YourModel.objects.get(user=self.request.user)
# urls.py
from django.urls import path
from .views import YourModelAPIView

urlpatterns = [
    path('your-model/', YourModelAPIView.as_view(), name='your-model-api'),
]
# settings.py
INSTALLED_APPS = [
    # ...
    'rest_framework',
    # ...
]
# settings.py
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.TokenAuthentication',
        # Add other authentication classes if needed
    ],
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.IsAuthenticated',
        # Add other permission classes if needed
    ],
}
# settings.py
AUTHENTICATION_CLASSES = [
    'rest_framework.authentication.TokenAuthentication',
    # Add other authentication classes if needed
]
# settings.py
REST_USE_JWT = True
# settings.py
from datetime import timedelta

JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': timedelta(seconds=300),
    'JWT_ALLOW_REFRESH': True,
    'JWT_REFRESH_EXPIRATION_DELTA': timedelta(days=7),
}