I have this field in my User model
THEMES = [
("black", "black"),
("light", "light"),
("dark", "dark")
]
theme = models.CharField(
max_length=100, choices=CHAT_STYLES,
default=THEMES[1][1], null=True, blank=True
)
I'm trying to write a put request for it. this is the serializer.py
class UpdateThemeSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ["theme"]
def update(self, instance, validated_data):
new_theme = validated_data["theme"]
User.objects.update(theme=new_theme)
and here is the view
class UpdateTheme(APIView):
permission_classes = [IsAuthenticated]
def put(self, request):
serializer = UserSerializer(request.user, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(data=serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors)
but when I test it in Postman i get this error
{
"theme": [
"\"dark\" is not a valid choice."
]
}