在 ManyToManyField 模型中添加数据时出错

问题描述 投票:0回答:0

此处分配模型具有带标签的 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

如果您需要任何其他信息,请告诉我

django django-models django-rest-framework django-serializer
© www.soinside.com 2019 - 2024. All rights reserved.