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



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

型号.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=Tag.objects.all(), many=True)
class Meta:
model = PackageRoom
fields = ("name", "tags")

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

最新更新