gpt4 book ai didi

django - 如何使用 Django Rest Framework 创建多个模型实例?

转载 作者:行者123 更新时间:2023-11-28 19:33:34 24 4
gpt4 key购买 nike

我想通过一次 API 调用使用 Django Rest Framework 保存和更新多个实例。例如,假设我有一个可以有多个“教师”的“类”模型。如果我想创建多位教师,然后更新他们所有的教室编号,我该怎么做?我是否必须为每位教师调用 API?

我知道目前我们无法保存嵌套模型,但我想知道我们是否可以在教师级别保存它。谢谢!

最佳答案

我知道不久前有人问过这个问题,但我在尝试自己解决这个问题时发现了它。

事实证明,如果您在为模型实例化序列化程序类时传递 many=True,它就可以接受多个对象。

这里提到here在 django rest 框架文档中

就我而言,我的观点是这样的:

class ThingViewSet(viewsets.ModelViewSet):
"""This view provides list, detail, create, retrieve, update
and destroy actions for Things."""
model = Thing
serializer_class = ThingSerializer

我真的不想为了直接控制序列化程序的实例化并传递 many=True 而编写大量样板文件,所以在我的序列化程序类中我重写了 __init__ 改为:

class ThingSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
many = kwargs.pop('many', True)
super(ThingSerializer, self).__init__(many=many, *args, **kwargs)

class Meta:
model = Thing
fields = ('loads', 'of', 'fields', )

以以下格式将数据发布到此 View 的列表 URL:

[
{'loads':'foo','of':'bar','fields':'buzz'},
{'loads':'fizz','of':'bazz','fields':'errrrm'}
]

使用这些详细信息创建了两个资源。这很好。

关于django - 如何使用 Django Rest Framework 创建多个模型实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14666199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com