如何使用 Postman 表单数据在 Django REST Framework 中发布嵌套数组?

2024-02-18

我有一个带有数组字段的嵌套可写序列化器。我需要用表单数据测试它,因为字段类型之一是ImageField。当我改变了ImageField into CharField如果我用原始 JSON 格式发布它,效果很好。
我的简化版serializers.py:

class ProductMarketSerializer(serializers.ModelSerializer):
    id = serializers.IntegerField(required=False)
    market = serializers.PrimaryKeyRelatedField(many=False, queryset=Market.objects.all())
    slabs = serializers.PrimaryKeyRelatedField(many=True, queryset=Slab.objects.all())
    thicknesses = serializers.PrimaryKeyRelatedField(many=True, queryset=Thickness.objects.all())
    finish_types = serializers.PrimaryKeyRelatedField(many=True, queryset=FinishType.objects.all())

    class Meta:
        model = ProductMarket
        fields = ['id', 'market', 'name', 'slabs', 'thicknesses', 'finish_types']


class ProductSerializer(serializers.ModelSerializer):
    collection = serializers.PrimaryKeyRelatedField(queryset=ProductCollection.objects.all(), many=False)
    color = serializers.PrimaryKeyRelatedField(queryset=ColorParent.objects.all(), many=False)
    images = ProductImageSerializer(many=True)
    descriptions = ProductDescriptionSerializer(many=True)
    markets = ProductMarketSerializer(many=True)

    class Meta:
        model = Product
        fields = ['id', 'product_code', 'collection', 'color', 'images', 'descriptions', 'markets', 'video', 'status']

    def create(self, validated_data):
        image_data = validated_data.pop('images')
        description_data = validated_data.pop('descriptions')
        market_data = validated_data.pop('markets')

        images = []
        for image in image_data:
            img_obj = ProductImage.objects.create(**image)
            images.append(img_obj)

        descriptions = []
        for description in description_data:
            desc_obj = ProductDescription.objects.create(**description)
            descriptions.append(desc_obj)

        markets = []
        for market in market_data:
            slabs = market.pop('slabs')
            thicknesses = market.pop('thicknesses')
            finish_types = market.pop('finish_types')
            market_obj = ProductMarket.objects.create(**market)
            market_obj.slabs.set(slabs)
            market_obj.thicknesses.set(thicknesses)
            market_obj.finish_types.set(finish_types)
            markets.append(market_obj)

        product = Product.objects.create(**validated_data)
        product.images.set(images)
        product.descriptions.set(descriptions)
        product.markets.set(markets)

        return product

views.py:

class ProductView(viewsets.ModelViewSet):
    permission_classes = [permissions.DjangoModelPermissions]
    serializer_class = ProductSerializer
    queryset = Product.objects.all()

For now I can only send 1 slabs, thicknesses, and finish_types each within 1 markets field. How to add another slabs, thicknesses, and finish_types for the same markets? What's the correct key-value pair format if I use form-data as Body?
enter image description here
The created Product object:

{
    "message": "success",
    "data": {
        "id": 60,
        "product_code": "BQ1010",
        "collection": 1,
        "color": 1,
        "images": [
            {
                "id": 57,
                "image": "image",
                "default": false
            }
        ],
        "descriptions": [
            {
                "id": 65,
                "language": 1,
                "description": "new description in english"
            }
        ],
        "markets": [
            {
                "id": 47,
                "market": 1,
                "name": "White Stone",
                "slabs": [
                    1
                ],
                "thicknesses": [
                    2
                ],
                "finish_types": [
                    1
                ]
            }
        ],
        "video": "https://www.youtube.com",
        "status": "Continue"
    }
}

When I try to add the second slabs and thicknesses like this: enter image description here
The slabs and thicknesses fields will be empty.

 "markets": [
            {
                "id": 48,
                "market": 1,
                "name": "White Stone",
                "slabs": [],
                "thicknesses": [],
                "finish_types": [
                    1
                ]
            }
        ],

如何使用 Postman 表单数据在 Django REST Framework 中发布嵌套数组?

group_permission[0]permission:share_item

group_permission[0]user_group:1

group_permission[0]key:5

group_permission[0]groups:1

group_permission[0]value:True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Postman 表单数据在 Django REST Framework 中发布嵌套数组? 的相关文章

  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 多处理中的动态池大小?

    有没有办法动态调整multiprocessing Pool尺寸 我正在编写一个简单的服务器进程 它会产生工作人员来处理新任务 使用multiprocessing Process对于这种情况可能更适合 因为工作人员的数量不应该是固定的 但我需
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 从 Azure ML 实验中访问 Azure Blob 存储

    Azure ML 实验提供了通过以下方式读取 CSV 文件并将其写入 Azure Blob 存储的方法 Reader and Writer模块 但是 我需要将 JSON 文件写入 blob 存储 由于没有模块可以执行此操作 因此我尝试在Ex
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • Python Anaconda:如何测试更新的库是否与我现有的代码兼容?

    我在 Windows 7 机器上使用 Python 2 7 Anaconda 安装进行数据分析和科学计算 当新的库发布时 例如新版本的 pandas patsy 等 您建议我如何测试新版本与现有代码的兼容性 是否可以在同一台机器上安装两个
  • 根据其他单元格值更改多个单元格值

    我想更改包含的单元格moving to movingToOpenor movingToClose基于下一个单元格中给出的状态 有时循环会被中断并且不会从open to close or close to open 这是我当前的数据框 Dat
  • python中basestring和types.StringType之间的区别?

    有什么区别 isinstance foo types StringType and isinstance foo basestring 对于Python2 basestring是两者的基类str and unicode while type
  • 在Raspberry pi上升级skimage版本

    我已经使用 Raspberry Pi 2 上的 synaptic 包管理器安装了 python 包 然而 skimage 模块版本 0 6 是 synaptic 中最新的可用版本 有人可以指导我如何将其升级到0 11 因为旧版本中缺少某些功
  • 无法通过 Python 子进程进行 SSH

    我需要通过堡垒 ssh 进入机器 因此 该命令相当长 ssh i
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • 如何将带有参数的Python装饰器实现为类?

    我正在尝试实现一个接受一些参数的装饰器 通常带有参数的装饰器被实现为双重嵌套闭包 如下所示 def mydecorator param1 param2 do something with params def wrapper fn def
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • 如何从namedtuple实例列表创建pandas DataFrame(带有索引或多索引)?

    简单的例子 from collections import namedtuple import pandas Price namedtuple Price ticker date price a Price GE 2010 01 01 30
  • 无法安装最新版本的 Numpy (1.22.3)

    我正在尝试安装最新版本的 numpy 即 1 22 3 但看起来 pip 无法找到最后一个版本 我知道我可以从源代码本地安装它 但我想了解为什么我无法使用 pip 安装它 PS 我有最新版本的pip 22 0 4 ERROR Could n

随机推荐

  • 选择只有一个唯一值的 pandas 数据框列

    如何有效地选择只有 1 个唯一值的 pandas dataframe 列 我知道 DataFrame 和 Series nunique 我认为需要DataFrame nunique http pandas pydata org pandas
  • 在 Netbeans 7.1 中编译

    我无法在 Widows 7 中的 netbeans 7 1 中编译项目 错误是 mkdir exe 停止工作 我在 MinGW gt Msys gt 1 0 gt bin 中找到 mkdir exe 并运行 但没有解决这个问题 当我运行项目
  • 使用 ImageMagick (或类似的)覆盖图像的文件名

    我知道 ImageMagick 的annotate命令可以在图像上叠加一些文本 但是它可以使用图像的文件名作为该文本吗 我本来是这么认为的 但似乎找不到直接的文档来证实这一点 毫无疑问 某些参数组合可以管理此问题 或者是否有更好的方法在脚本
  • 我如何使用 jekyll & Liquid 更有效地创建这个画廊?

    我的画廊是基于我的 twitter bootstrap css 文件 我最终使用了带有内联 HTML Markdown 的 Kramdown 因为我无法让它按照我希望的方式在 Liquid 中工作 Kramdown 解析的 markdown
  • 如何获取URL的路径?

    我有一个网址 如何检索其路径部分 例如 给定 http www costo com test1 test2 如何得到 test1 test2 你想要这样的东西 String path new URL http www costo com t
  • 将JSON数据放入html表单输入隐藏?

    我正在构建一个使用大量数据的丰富的 Web 应用程序 当我构建它时 我发现我一遍又一遍地重复自己 这就是问题 我需要将隐藏的应用程序逻辑放入 HTML 元素中以表示客户端正在查看的数据 这是我前段时间发现的一个解决方案 a href bla
  • 如何求和两个对象的属性?

    我有多个 JavaScript 对象 a 12 b 8 c 17 and a 2 b 4 c 1 我需要通过键对这两个对象求和 Result a 14 b 12 c 18 你有 JavaScript 的解决方案吗 我用Object keys
  • 树遍历递归

    我是编程新手 我正在研究我的树项目 我的树看起来像这样树结构 https i stack imgur com Ld0ke png 我已经编写了遍历完整树的代码 目前我的遍历将像这样打印完整的树 A B E F C D G H I J K d
  • “realloc():下一个大小无效”[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 或者 重复
  • Android zip 文件身份验证

    如果我想创建需要压缩视频并且用户必须有密码身份验证才能打开文件的应用程序 是否可以 如果可能的话 你们能给我一些示例代码吗 谢谢 问候 尝试这样的事情 OutputStream out new ZipOutputStream new Cip
  • IE7 不尊重显示:阻止

    我正在尝试使用以下 HTML 标记进行简单的垂直导航 ul li a a li li a a li li a a li ul 尽管有display block 在两个 li and a 元素 IE7 似乎不尊重包含 div 的完整宽度 对这
  • 如何使用 cocoon 在 Rails 中克隆子对象?

    我有一个父对象 其中有许多非常相似的子对象 我有一个带有表格的表单 可以使用 cocoon 来编辑它们 有了它 和这个答案 https stackoverflow com questions 18734783 nested form coc
  • JqG​​rid 选择可能或可能不可见的特定行

    我有一个 jqGrid 并且有几页项目 我有一行的 ID 该行可能位于第一页 也可能隐藏在其他页面的某个位置 给定行的 ID 如何以编程方式选择这样的行 我使用按钮的点击事件如下 on click function var myId thi
  • 虚拟继承[重复]

    这个问题在这里已经有答案了 虚拟 继承是什么意思 我看到了下面的代码 没明白关键字的意思virtual在以下情况下 class A class B public virtual A 虚拟继承用于解决 DDD 问题 Dreadful Diam
  • 如何在 Laravel 中向所有日志记录添加数据?

    我想向 Laravel 应用程序中的所有日志记录添加一些数据 我认为了解当前用户的用户名和 或客户端 IP 地址会很有帮助 目前我正在通过执行以下操作手动添加它 Log info Pre paid activation array user
  • MySQL-1300-更新时 utf8 字符串无效

    我有一个 MySQL 表列 我正在尝试将其从 latin1 转换为 UTF8 该列中的某些值已经是 UTF8 但它们存储为 latin1 这会导致一些看起来很奇怪的文本 切换列非常简单 我所要做的就是 ALTER TABLE user pr
  • 使用 WTForms 进行长排序下拉列表

    我想按字母顺序创建美国各州的下拉列表 我已将状态元组转换为 OrderedDict 并将其输入到我的 WTForms SelectField 中 import collections import wtforms STATE ABBREV
  • 在 XCode 5 中将项目导入远程 SVN 服务器

    以前在 XCode 4 中 在 Organizer 屏幕的 Repositories 部分中 有一个选项 导入 可将项目导入到 SVN 服务器中 该选项现在在 Xcode 5 的 Source Control 菜单中被禁用 尽管存储库已添加
  • Windows 7 无法写入物理驱动器?

    我编写了一个磁盘实用程序 允许您擦除整个物理驱动器 它使用 Windows 文件 api 调用 destFile CreateFile PhysicalDrive1 GENERIC WRITE FILE SHARE READ FILE SH
  • 如何使用 Postman 表单数据在 Django REST Framework 中发布嵌套数组?

    我有一个带有数组字段的嵌套可写序列化器 我需要用表单数据测试它 因为字段类型之一是ImageField 当我改变了ImageField into CharField如果我用原始 JSON 格式发布它 效果很好 我的简化版serializer