【发布时间】:2022-06-25 20:27:50
【问题描述】:
发送json到服务器时,报错如下:
Direct assignment to the reverse side of a related set is prohibited. Use items.set() instead.
请帮帮我。最近开始研究DRF,不明白如何在django中正确编写def create将数据写入外键模型?
这是我的代码 序列化器.py
class ConsignmentNoteSerializer(serializers.ModelSerializer):
create_user = serializers.HiddenField(default=serializers.CurrentUserDefault())
create_user = UserSerializer(source='creator', read_only=True)
contragent_detail = ContragentSerializer(source='contragent', read_only=True)
items = ConsignmentItemSerializer(many=True)
class Meta:
model = ConsignmentNote
fields = ['id', 'doc_type', 'date', 'number', 'contragent_detail', 'comment', 'create_user', 'items', 'created']
**def create(self, validated_data):
items_data = self.validated_data.pop('items')
return ConsignmentNote.objects.create(**validated_data)**
这是我要发送的 json
{
"id": 9,
"doc_type": "capitalize",
"date": "2022-06-04",
"number": 98,
"contragent_id": 4,
"comment": "",
"items": [
{
"id": 18,
"product": 10,
"buy_price": "200.00",
"sell_price": "500.00",
"quantity": 5
},
],
}
【问题讨论】:
标签: python django django-rest-framework django-serializer