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")

enter image description here

Данные сохранены успешно, но когда я пытаюсь получить данные, они возвращаются в таком формате

"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__"
Вернуться на верх