Обновление внешнего ключа в Django Rest Framework

Вот мои модели в DRF:

class Course(models.Model):
    title = models.CharField(max_length=100, unique=True)

class Prerequisite(models.Model):
    course = models.ForeignKey(Course, on_delete=models.CASCADE,           related_name="course_prerequisite")
    title = models.CharField(max_length=75)

и мои сериализаторы:

class CourseSerializer(serializers.ModelSerializer):
    prerequisite = serializers.SerializerMethodField()


    class Meta:
        model = models.Course
        fields = "__all__"

    def get_prerequisite(self, obj):
        serializer = PrerequisiteSerializer(obj.course_prerequisite.all(), many=True)
        return serializer.data

class PrerequisiteSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Prerequisite
        fields = "__all__"

и мое представление для получения курса:

    def retrieve(self, request, pk=None):
        course = get_object_or_404(Course, slug=pk)
        serializer = serializers.CourseSerializer(instance=course)
        return Response(serializer.data, status=status.HTTP_200_OK)

Теперь мой вопрос: представьте, что я отправил запрос на api для получения курса с пк 18 следующим образом:

{
    "results": [
        {
            "id": 18,
            'title': 'learn python in 30 days'
            "prerequisite": [
                {
                    "id": 1,
                    "title": "Introduction",
                    "course": 18
                },
            ],
        }
    ]
}

и теперь я хочу обновить пререквизит с id 1, какой код я должен добавить в представление обновления в CourseViewSet, я знаю, что могу создать другое представление для пререквизитов, но я хочу сделать это именно таким образом, как при добавлении TabularInLine в стандартной панели администратора Django, когда вы можете обновить и изменить foreignkey!

Вернуться на верх