在外键django中保存多个关系对象

Save multiple relational objects in foreign key django

我想在模型之间建立一对多关系,在 Django 中,我们需要使用 ForeignKey。我将从前端的数组中获取多个关系对象的 ID,但我很困惑如何将这些多个关系对象保存在其中?每个包房可以有多个标签,但标签只会有一个包房。

models.py

class Tag(models.Model):
    name = models.CharField(max_length=255, default='')
    description = models.CharField(max_length=255, default='')
    singleline = models.ManyToManyField(Singleline)

    class Meta:
        db_table = 'tags'



class PackageRoom(models.Model):
    name = models.CharField(max_length=255, default='')
    tags = models.ForeignKey(Tag, on_delete=models.PROTECT) 

    class Meta:
        db_table = 'package_rooms'

我将从前端接收的 JSON 对象

{
   "name": "Test Room", 
   "tags": [1, 2, 3, 4, 5]  // IDs of Tags 
}

您可以在序列化程序中使用 PrimaryKeyRelatedField 并设置其 many=True:

class PackageSerializer(serializers.ModelSerializer):

    tags = serializers.PrimaryKeyRelatedField(queryset=PackageRoom.objects.all(), many=True)

    class Meta:
        model = PackageRoom
        fields = ("name", "tags")

文档是:https://www.django-rest-framework.org/api-guide/relations/#primarykeyrelatedfield