feat: add CamelCase rendering for JSON responses

This commit is contained in:
Chneemann 2025-03-21 18:22:02 +01:00
parent 33b448f59c
commit b4e7cfdab0
5 changed files with 29 additions and 4 deletions

View file

@ -56,6 +56,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'rest_framework', 'rest_framework',
'corsheaders', 'corsheaders',
'djangorestframework_camel_case',
'task_app', 'task_app',
'user_app', 'user_app',
] ]
@ -73,6 +74,15 @@ MIDDLEWARE = [
ROOT_URLCONF = 'join.urls' ROOT_URLCONF = 'join.urls'
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'djangorestframework_camel_case.render.CamelCaseJSONRenderer',
),
'DEFAULT_PARSER_CLASSES': (
'djangorestframework_camel_case.parser.CamelCaseJSONParser',
),
}
TEMPLATES = [ TEMPLATES = [
{ {
'BACKEND': 'django.template.backends.django.DjangoTemplates', 'BACKEND': 'django.template.backends.django.DjangoTemplates',

View file

@ -1,4 +1,6 @@
asgiref==3.8.1 asgiref==3.8.1
Django==5.1.7 Django==5.1.7
django-cors-headers==4.7.0
djangorestframework==3.15.2 djangorestframework==3.15.2
djangorestframework-camel-case==1.4.2
sqlparse==0.5.3 sqlparse==0.5.3

View file

@ -37,4 +37,4 @@ class AssignedTask(models.Model):
user = models.ForeignKey(User, related_name="assigned_tasks", on_delete=models.CASCADE) user = models.ForeignKey(User, related_name="assigned_tasks", on_delete=models.CASCADE)
def __str__(self): def __str__(self):
return f"{self.user.username} assigned to {self.task.title}" return f"{self.user.email} assigned to {self.task.title}"

View file

@ -1,4 +1,6 @@
from rest_framework import serializers from rest_framework import serializers
from djangorestframework_camel_case.render import CamelCaseJSONRenderer
from djangorestframework_camel_case.parser import CamelCaseJSONParser
from .models import Task, SubTask, AssignedTask from .models import Task, SubTask, AssignedTask
class SubTaskSerializer(serializers.ModelSerializer): class SubTaskSerializer(serializers.ModelSerializer):
@ -22,3 +24,6 @@ class TaskSerializer(serializers.ModelSerializer):
model = Task model = Task
fields = ['id', 'title', 'description', 'category', 'priority', 'status', 'date', fields = ['id', 'title', 'description', 'category', 'priority', 'status', 'date',
'creator', 'created_at', 'subtasks', 'assignees'] 'creator', 'created_at', 'subtasks', 'assignees']
renderer_classes = [CamelCaseJSONRenderer]
parser_classes = [CamelCaseJSONParser]

View file

@ -1,7 +1,15 @@
from rest_framework import serializers from rest_framework import serializers, viewsets
from .models import User from .models import User
from djangorestframework_camel_case.parser import CamelCaseJSONParser
from djangorestframework_camel_case.render import CamelCaseJSONRenderer
class UserSerializer(serializers.ModelSerializer): class UserSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = User model = User
fields = ['id', 'uId', 'first_name', 'last_name', 'email', 'phone', 'initials', 'color', 'status', 'last_login'] fields = ['id', 'uId', 'first_name', 'last_name', 'email', 'phone', 'initials', 'color', 'status', 'last_login']
class UserViewSet(viewsets.ModelViewSet):
serializer_class = UserSerializer
queryset = User.objects.all()
parser_classes = [CamelCaseJSONParser]
renderer_classes = [CamelCaseJSONRenderer]