此处分配模型具有带标签的 ManyToManyField 但是当我尝试使用序列化程序插入数据时,我在标签字段中得到一个空列表 []
这是我的 serializers.py:
from rest_framework import serializers
from assignment.models import (
Assignment,
Tag,
)
class AssignmentSerializer(serializers.ModelSerializer):
"""Serializer for Assignment."""
class Meta:
model = Assignment
fields = ["id", "name", "tags", "last_updated_by", "assignment_data"]
read_only_fields = ["id"]
def create(self, validated_data):
"""Create an Assignment."""
tags_data = validated_data.pop("tags", [])
instance = Assignment.objects.create(**validated_data)
for tag_name in tags_data:
created = Tag.objects.get_or_create(name=tag_name)
instance.tags.set(tags)
instance.save()
return instance
我发送这个值:
{
"name": "demo assignment",
"tags": ["demo"],
"last_updated_by": "user1",
"assignment_data": {
"hello": "Hello world 2"
}
}
错误:
File "D:\Assignments-Api\.venv\Lib\site-packages\django\db\backends\base\base.py", line 313, in _commit
return self.connection.commit()
^^^^^^^^^^^^^^^^^^^^^^^^
django.db.utils.IntegrityError: FOREIGN KEY constraint failed
如果您需要任何其他信息,请告诉我