In my REST API screen I'm seeing this view:
Instead of the "Content" field I used to see a form where I could input data. Now my only option is to manually write in JSON. I'm not entirely sure when/how this change happened so I'm at a bit of a loss for where to look to change it back. I've tried changing the media type on this page but that has no effect.
Does anyone know how this field is generated and how I can switch it back to the form data instead?
Edit: views.py
from django.shortcuts import render
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Asset, Pack
from .serializers import (
AssetSerializer,
CreateAssetSerializer,
PackSerializer,
)
class AssetViewSet(viewsets.ViewSet):
"""API endpoint that allows assets to be viewed or edited."""
queryset = Asset.objects.all()
def list(self, request):
serializer = AssetSerializer(self.queryset, many=True)
return Response(serializer.data)
def create(self, request):
serializer = CreateAssetSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data)
class PackViewSet(viewsets.ViewSet):
"""API endpoint that allows packs to be viewed or edited."""
queryset = Pack.objects.all()
def list(self, request):
serializer = PackSerializer(self.queryset, many=True)
return Response(serializer.data)
serializers.py
from rest_framework import serializers
from .models import Asset, Pack
class AssetSerializer(serializers.ModelSerializer):
class Meta:
model = Asset
fields = "__all__"
class CreateAssetSerializer(serializers.ModelSerializer):
class Meta:
model = Asset
fields = (
"path",
"name",
"asset_type",
"created_by",
)
class PackSerializer(serializers.ModelSerializer):
class Meta:
model = Pack
fields = "__all__"
class CreatePackSerializer(serializers.ModelSerializer):
class Meta:
model = Pack
fields = (
"name",
"pack_type",
"contents",
)
Thanks, Mitchell
I ended up solving this by adding serializer_class = CreateAssetSerializer
to my AssetViewSet
class