Я разрабатываю мобильное приложение с Django Rest Framework сзади и React Native спереди. У меня есть модели и вложенные сериализаторы. Мне нужно заодно вставить в них запись. Но у меня объект "Сущность" не имеет атрибута "автомобильная" ошибка. Когда я проверяю подобные примеры, я не понимаю, в чем я ошибаюсь. Сначала будет вставлен объект, а после этого будет вставлен автомобиль с подключением этого объекта.
Не могли бы вы мне помочь?
class Entity(models.Model):
customer = models.CharField(max_length=100, null=True, blank=True)
seller = models.CharField(max_length=100, null=True, blank=True)
entity_name = models.CharField(max_length=50, blank=True, default='')
class Meta:
verbose_name_plural = u"Entities"
verbose_name = u"Entity"
def __str__(self):
return "%s %s" % (self.id, self.entity_name)
class Automobile(models.Model):
entity = models.ForeignKey(Entity, on_delete=models.CASCADE, blank=True)
entity_address = models.CharField(max_length = 250, blank = True, default = '')
used_km = models.IntegerField(default = 0)
manufactured_year = models.IntegerField(validators=[MinValueValidator(1900), MaxValueValidator(timezone.now().year)], blank = True, null = True)
def __str__(self):
return "%s" % (self.entity_id)
class Meta:
verbose_name_plural = u"OptionedAutomobiles"
verbose_name = u"OptionedAutomobile"
class AutomobileSerializer(serializers.ModelSerializer):
class Meta:
model = Automobile
fields = [ 'entity_address', 'used_km', 'manufactured_year']
class EntitySerializer(serializers.ModelSerializer):
automobile = AutomobileSerializer(many=False)
class Meta:
model = Entity
fields = ['id', 'customer', 'seller', 'entity_name',
'automobile']
def create(self, validated_data):
automobile_data = validated_data.pop('automobile')
entity = Entity.objects.create(**validated_data)
Automobile.objects.create(entity= entity, **automobile_data)
return entity
class EntityViewSet(viewsets.ModelViewSet):
serializer_class = EntitySerializer
queryset = Entity.objects.all()
permission_classes = (AllowAny,)
def perform_create(self, serializer):
serializer.save(customer=self.request.user)
class AutomobileViewSet(viewsets.ModelViewSet):
serializer_class = AutomobileSerializer
queryset = Automobile.objects.all()
permission_classes = (AllowAny,)
fetch(`http://127.0.0.1:8000/api/entities/`, {
method: 'POST',
headers: {
'Authorization': `Token ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({seller:seller,
entity_name:entity_name,
automobile:{used_km:10}})
})
.then((res) => res.json())
.then((data) => {
console.log(data)
})
.then(res =>{
Alert.alert("Yeni Entity eklendi.");
})
.catch(error=>console.log(error));