Обновление внешнего ключа в 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!