Это моя модель:
class MyModel(models.Model):
ID = models.ForeignKey(OtherModel,related_name='NewModel', on_delete=models.CASCADE)
start = models.BigIntegerField()
duration = models.BigIntegerField(default= 30)
value = models.IntegerField()
где OtherModel имеет 2 поля, biginteger и foreignkey. Я пытаюсь создать экземпляр MyModel, и это дает мне ключевую ошибку. Сериализатор, как показано ниже:
class ModifyReadingSerializer(serializers.Serializer):
duration = serializers.IntegerField()
start = serializers.IntegerField()
class OriginalSerializer(serializers.ModelSerializer):
timePeriod = ModifyReadingSerializer(source = '*')
class Meta:
model = MyModel
fields = ('timePeriod', 'value',)
А вид для его создания показан ниже:
class RegisterValues(generics.ListCreateAPIView):
''' GET/POST urltemp/{ID = pk}'''
queryset = MyModel.objects.all()
serializer_class = OriginalSerializer
def post(self, request, *args, **kwargs):
s1 = OtherModel.objects.get(mRID=kwargs["pk"])
a_temp = MyModel.objects.create(
ID=s1,
value=request.data["value"],
duration=request.data["duration"],
start=request.data["start"],)
return Response(data=OriginalSerializer(a_temp).data)
Я получаю следующую ошибку KeyError на /urltemp/1 'duration'
. Я понимаю, почему я получаю ошибку, но не уверен, как ее исправить, сохраняя вложенное представление. И я вижу ошибку в строке, где я создаю продолжительность (я вижу это в терминале).
РЕДАКТИРОВАТЬ: ДОБАВЛЕНО ЗАГРУЗКА
{
"timePeriod": {
"duration": 30,
"start": 24
},
"value": 34,
}