Доброго времени суток.
У меня есть 3 модели:
class DogRequest(models.Model):
id_name=models.PositiveSmallIntegerField()
Color_data=models.ForeignKey('Color_datas', on_delete=models.CASCADE, blank=True)
class Color_datas(models.Model):
temp=models.PositiveSmallIntegerField()
dogs=models.ManyToManyField('dog', blank=True)
class Dog(models.Model):
name = models.CharField(max_length=50)
Так выглядит мой api:
{"id_name" : 1,
"Color_data" :
{"temp":320,
"dogs": [
{"name":"sharik"},
{"name":"bobik"}
]
}
}
Так выглядит мой serializers:
class DogSerializer(serializers.ModelSerializer):
name = serializers.CharField(max_length=50)
class Meta:
model = Dog
fields = '__all__'
class Color_datasSerializer(serializers.ModelSerializer):
temp = serializers.IntegerField()
dogs= DogSerializer(many=True)
class Meta:
model = Color_datas
fields = '__all__'
class DogRequestSerializer(serializers.ModelSerializer):
id_name = serializers.IntegerField(max_value=None, min_value=1)
Color_data= Color_datasSerializer()
class Meta:
model=DogRequest
fields='__all__'
def create(self, validated_data):
Color_data_data = validated_data.pop('Color_data')
dogrequest = DogRequest.objects.create(**validated_data)
Color_datas.objects.create(dogrequest =dogrequest , **Color_data_data)
return DogRequest
Мой views:
def dogsApi(request, id=0):
if 'POST' == request.method:
dogs_data=JSONParser().parse(request)
dogs_serializer=DogRequestSerializer(data=dogs_data)
if dogs_serializer.is_valid():
dogs_serializer.save()
return JsonResponse("Добавлено успешно", safe=False)
return JsonResponse("Не удалось добавить", safe=False)
Нужна ли мне функция create? (можем в ней ошибся)
Почему не работает код? (на возврат получаю "Не удалось добавить")