I'm new to django and I'm trying to find a solution on how to post an object with array of object inside my database.
So far, here's my sample model.
class Fruit(models.Model):
name = models.CharField(max_length=100)
class FruitReviews(models.Model):
reviews = models.CharField(max_length=100)
fruit = models.ForeignKey(Fruit, on_delete=models.CASCADE)
Here's my serializer.
class FruitSerializer(serializers.ModelSerializer):
class Meta:
model = Fruit
fields = '__all__'
class FruitReviewSerializer(serializers.ModelSerializer):
class Meta:
model = FruitReviews
fields = '__all__'
And Here's my viewset that I'm trying but unfortunately, it doesn't work.
@api_view(['POST'])
def createFruit(request):
serializer = FruitSerializer(data=request.data)
serializer2 = FruitReviewSerializer(data=request.data.fruitReviews, many = True)
if serializer.is_valid() and serializer2.is_valid():
serializer.save()
serializer2.save()
return Response(status=status.HTTP_200_OK)
For the URL, I'm using something like this:
from apiapp import views
urlpatterns = [
path('fruit-api/', views.createFruit),
]
Basically, for instance, from the client side I want to post something like this
{
"name": "Apple",
"fruitReviews": [{
"reviews": "Very yummy"
},
{
"reviews": "Healthy"
},
{
"reviews": "Fresh"
}]
}
I want it to be posted to the fruit table and fruit reviews properly with their relationships as one-to-many intact. Any help please?
fruittable and reviews infruitReviewtable in this POST?def createFruitbecause I'm not sure if it's possible.