当前位置: 首页 > 面试题库 >

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

施驰
2023-03-14
问题内容

我想使用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'}
]

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



 类似资料:
  • 我们已经使用Google Guice框架进行依赖注入。我需要在Java创建一个接口的多个insatnce。 执行从这里开始:下面代码中的KFHRecordValidator.java类: process类具有RecordValidationHelper类的引用,并且注入是通过构造函数进行的。iRecordValidationService.java是一个具有validate方法的接口。 类处理器有

  • 我开始了Django-haystack和弹性搜索的实验。 使用: models.py 我想为上述模型创建一个搜索索引: 是否可以使用多个模型创建搜索索引。或者我必须为多个模型创建多个搜索索引。 注:两种型号完全独立。

  • 我试图使用OpenNLPJavaAPI从文档中提取名称、技能等实体。但它没有提取正确的名称。我使用opennlp源锻造链接上可用的模型 下面是一段java代码- 我想做的是: 我正在使用ApacheTika将PDF文档转换为纯文本文档 但它正在提取姓名和其他单词。它不是提取专有名称。如何创建自定义模型,从文档中提取游泳、编程等技能? 给我一些想法! 任何帮助都将不胜感激!?

  • 考虑这个例子 我有一个函数,它以作为输入,并返回三个值,我想存储到三个不同的变量。下面的似乎工作正确 然而,当我试图创建相应的变量时,我得到了一个错误 你怎么认为? 我曾经在pandas apply()的返回多列中使用伟大的解决方案,但在当前的pandas中,此解决方案不再有效 谢谢!

  • 问题内容: 我有一个注释,该注释根据此惯用法接收“动态”参数,即接口类型的参数。简而言之: 现在,要评估此参数,我需要创建提供的实现的实例。上面链接的答案是在运行时执行的。但是,我正在按照本教程编写“实时”(即编译时)注释处理器。使用类型时,必须考虑它们可能尚未编译。本教程以以下方式处理该问题(在这种情况下,检索类型的名称): classTypeMirror.asElement(); qualif

  • 我的目标是使用生成器模式根据产品类别创建产品详细信息字段。 无论产品类别如何,这都是基本的属性。 电脑类可能有 食物类别可能有 这是我使用的基本构建器模式 当我尝试将类扩展到例如或类时,就会出现问题。 我的预期结果是:我可以做。 我的实际结果是:因为构造函数是私有/受保护的,所以我无法扩展。一些网站禁止使用公共构造函数来避免直接初始化,我同意这种做法。