# 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),
}