私はデータベースに保存するためにJsonレスポンスを取得していますが、line_items
オブジェクトを取得する必要があります。モデルのline_items
属性を削除すると、シリアライザとビューが正常に動作しますが、そのオブジェクトを取得してデータベースに保存しようとすると何も起こりません。私はシリアライザで何かを見逃しているのでしょうか?ネストされたオブジェクトをdjango rest frameworkにシリアライザで保存します
JSON構造:
{
"id": 123456,
"email": "[email protected]",
"created_at": "2017-03-29T15:56:48-04:00",
"line_items": [
{
"id": 56789,
"title": "Aviator sunglasses",
"quantity": 1
},
{
"id": 98765,
"title": "Mid-century lounger",
"quantity": 1
}
]
}
マイモデル:
class Line(models.Model):
title = models.CharField(max_length=100)
quantity = models.IntegerField()
class Order(models.Model):
name = models.CharField(max_length=255)
created_at = models.DateTimeField()
total_price = models.DecimalField(max_digits=6,decimal_places=2)
line_items = models.ForeignKey(Line)
マイシリアライザ:
class OrderSerializer(ModelSerializer):
class Meta:
model = Order
fields = '__all__'
マイビュー:
@api_view(['POST'])
def orders(request):
if request.method == 'POST':
json_str = json.dumps(request.data)
resp = json.loads(json_str)
serializer = OrderSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
感謝。うまくいきませんでした、私はそれがメソッドの作成で何かになると思います。 – dfrojas
line_itemsは投稿内のリストですが、モデル内の外部キーです。私はそれがManyToManyFieldであるべきだと思います – Guinner