У меня есть две модели, модель A и модель B, имеющие отношение многие ко многим. Я хочу запрос PATCH на / test / {id}, который указывает на TestView для обновления как modelA, так и modelB. Не удается найти подходящий способ сделать это.
models.py
class modelA(models.Model):
field1 = models.CharField(max_length=100)
field2 = models.CharField(max_length=100)
class modelB(models.Model):
field3 = models.CharField(max_length=100)
field4 = models.ManyToManyField(modelA)
serializers.py
class modelAserializer(serializers.ModelSerializer):
field1 = serializers.CharField()
field2 = serializers.CharField()
class Meta:
model = modelA
fields = ('field1', 'field2',)
class modelBserializer(serializers.ModelSerializer):
field3 = serializers.CharField()
field4 = modelAserializer(many=True, read_only=True)
def update(self, instance, validated_data):
# **trying to update the models here**
return super().update(instance, validated_data)
class Meta:
model = modelB
fields = ('field3', 'field4',)
views.py
class TestView(Modelviewset):
serializer_class = modelBserializer
queryset = modelB.objects.all()
Это полезная нагрузка, с которой я пытаюсь получить патч.
{
"field3": "check1",
"field4": [
{
"field1": "check1",
"field2": "check1"
},
{
"field1": "check2",
"field2": "check2"
}
}