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

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

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

回答:

我知道这个问题是在不久前问到的,但是我在试图自己解决这个问题时就发现了。

事实证明,如果many=True在实例化模型的序列化器类时通过,则它可以接受多个对象。

django rest框架文档在这里提到了这一点

就我而言,我的观点如下所示:

class ThingViewSet(viewsets.ModelViewSet):

"""This view provides list, detail, create, retrieve, update

and destroy actions for Things."""

model = Thing

serializer_class = ThingSerializer

我并不是真的想写一个样板文件只是为了直接控制序列化器和pass的实例化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', )

以以下格式将数据发布到该视图的列表URL:

[

{'loads':'foo','of':'bar','fields':'buzz'},

{'loads':'fizz','of':'bazz','fields':'errrrm'}

]

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

以上是 如何使用Django Rest Framework创建多个模型实例? 的全部内容, 来源链接: utcz.com/qa/424616.html

回到顶部