Django Rest Framework, как использовать serializers.ListField с моделью и представлением?
Я хочу хранить массив целых чисел в поле day_of_the_week. Для этого я использую следующий код
models.py
class Schedule(models.Model):
name = models.CharField(max_length=100)
day_of_the_week = models.CharField(max_length=100)
serializers.py
class ScheduleSerializer(serializers.ModelSerializer):
day_of_the_week = serializers.ListField()
class Meta():
model = Schedule
fields = "__all__"
Views.py
# schedule list
class ScheduleList(APIView):
def get(self, request):
scheduleData = Schedule.objects.all()
serializer = GetScheduleSerializer(scheduleData, many=True)
return Response(serializer.data)
def post(self, request):
serializer = ScheduleSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response("Schedule Added")
Данные сохранены успешно, но когда я пытаюсь получить данные, они возвращаются в таком формате
"day_of_the_week": [
"[2",
" 1]"
],
есть ли способ получить массив целых чисел в качестве ответа?
Во время сохранения попытайтесь добавить дочернее поле в сериализатор:
class ScheduleSerializer(serializers.ModelSerializer):
day_of_the_week = serializers.SerializerMethodField()
def get_day_of_the_week(self, instance):
return instance.day_of_the_week[1:-1].split(',')
class Meta():
model = Schedule
fields = "__all__"