无法使用react js将文件上传到djangorest框架

2023-12-26

我正在使用 React Js 将图像上传到 django Restframework。 在这里我使用 fetch API 发送 post 请求。

Eapp.jsx

import React, { Component } from 'react';

class Eapp extends Component {
  constructor(props){
    super(props);
    this.state = {
      profilePic: null,
    };
    this.inpuElement = null;
    this.handleChange = this.handleChange.bind(this);
    this.handleSubmit = this.handleSubmit.bind(this);
  }
  handleChange(e){
    this.setState({profilePic: e.target.files[0]});
  }
  handleSubmit(){
    let formData = new FormData();
    formData.append('profile_pic',this.state.profilePic);
    fetch('http://10.42.0.1:8000/auth/profile-pic/', {
      method: 'POST',
      headers: {
        Accept: 'application/json, text/plain, */*',
        'content-type': 'multipart/form-data',
      },
      body:formData,
    }).then(res => res.json())
      .then((data) => {
        console.log(data);
      })
      .catch(err => console.log(err));
  }

  render(){
      return(
        <div>
          <input
            type="file"
            multiple={false}
            ref={(input) => { this.inpuElement = input; }}
            accept=".jpg,.jpeg,.png"
            onChange={this.handleChange}
          />
          <button onClick={this.handleSubmit}>submit</button>
      </div>
    );
  }
}
export default Eapp;

错误消息

Eapp.jsx:19 POST http://10.42.0.1:8000/auth/profile-pic/ 500 (Internal Server Error)
handleSubmit @ Eapp.jsx:19
callCallback @ react-dom.development.js:542
invokeGuardedCallbackDev @ react-dom.development.js:581
invokeGuardedCallback @ react-dom.development.js:438
invokeGuardedCallbackAndCatchFirstError @ react-dom.development.js:452
executeDispatch @ react-dom.development.js:836
executeDispatchesInOrder @ react-dom.development.js:858
executeDispatchesAndRelease @ react-dom.development.js:956
executeDispatchesAndReleaseTopLevel @ react-dom.development.js:967
forEachAccumulated @ react-dom.development.js:935
processEventQueue @ react-dom.development.js:1112
runEventQueueInBatch @ react-dom.development.js:3607
handleTopLevel @ react-dom.development.js:3616
handleTopLevelImpl @ react-dom.development.js:3347
batchedUpdates @ react-dom.development.js:11082
batchedUpdates @ react-dom.development.js:2330
dispatchEvent @ react-dom.development.js:3421
example:1 Failed to load http://10.42.0.1:8000/auth/profile-pic/: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 500. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Eapp.jsx:30 TypeError: Failed to fetch

django

 views.py
    class ProfilePictureView(generics.CreateAPIView):
        permission_classes = (permissions.AllowAny,)
        serializer_class = ProfilePictureSerializer
        parser_classes = (parsers.FormParser,parsers.MultiPartParser, parsers.FileUploadParser, )

        def perform_create(self, serializer):
            print(self.request.FILES['profile_pic'])
            serializer.save(user=User.objects.get(pk=2))


models.py

class Person(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    profile_pic = models.ImageField(null=True, upload_to='media')
    face_encodings = models.BinaryField(null=True)
    def __str__(self):
        return str(self.user.first_name)


serializers.py

class ProfilePictureSerializer(serializers.ModelSerializer):
    class Meta:
        model = Person
        fields = ['profile_pic','user']
        read_only_fields = ('user',)

class ProfilePictureSerializer(serializers.ModelSerializer):
    class Meta:
        model = Person
        fields = ['profile_pic','user']
        read_only_fields = ('user',)

class ProfilePictureSerializer(serializers.ModelSerializer):
    class Meta:
        model = Person
        fields = ['profile_pic','user']
        read_only_fields = ('user',)


raise MultiPartParserError('Invalid boundary in multipart: %s' % boundary.decode())
AttributeError: 'NoneType' object has no attribute 'decode'

我已经包含了 django cors 标头,除了这个之外,所有其他 api 路由都可以工作。我尝试了不同的发布请求方法,但仍然遇到错误。 似乎无法访问服务器,因为所有其他路由都在工作。 我已经在 django 中尝试过 MultiPart 解析器 fileUpload 解析器,但仍然收到错误状态 400, 500 。


尝试在标头中不包含内容类型,这肯定会有帮助。

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

无法使用react js将文件上传到djangorest框架 的相关文章

  • 如何在Python + Selenium中获取元素的值

    我在我的 Python 3 6 3 代码中得到了这个 HTML 元素 作为 Selenium网页元素当然 span class ocenaCzastkowa masterTooltip style color 000000 alt 5 sp
  • Discord.py 斜线命令在 cogs 中不起作用

    我正在构建一个不和谐的机器人 并且想要在 cogs 内使用斜杠命令 但这些命令不显示或工作 这是代码 cog guild ids 858573429787066368 861507832934563851 class Slash comma
  • NumPy 数组与 SQLite

    我在 Python 中见过的最常见的 SQLite 接口是sqlite3 但是有什么东西可以很好地与 NumPy 数组或 rearray 配合使用吗 我的意思是 它可以识别数据类型 不需要逐行插入 并提取到 NumPy rec 数组中 有点
  • Python Apache Beam 端输入断言错误

    我对 Apache Beam Cloud Dataflow 还很陌生 所以如果我的理解不正确 我深表歉意 我正在尝试通过管道读取大约 30 000 行长的数据文件 我的简单管道首先从 GCS 打开 csv 从数据中提取标题 通过 ParDo
  • lmfit模型拟合然后预测

    我正在领养lmfit进行曲线拟合并使用拟合模型进行预测 然而下面的代码并没有达到我想要的效果 能否请你帮忙 谢谢 import numpy as np from lmfit import Model def linearModel x a0
  • cxfreeze virtualenv 中缺少 distutils 模块

    从 python3 2 项目运行 cxfreeze 二进制文件时 我收到以下运行时错误 project dist project distutils init py 13 UserWarning The virtualenv distuti
  • 使用 python 从 CSV 创建字典

    我有一个 CSV 格式的文件 其中 A B 和 C 是标题 我如何以Python方式将此CSV转换为以下形式的字典 A 1 B 4 C 7 A 2 B 5 C 8 A 3 B 6 C 9 到目前为止我正在尝试以下代码 import csv
  • 为什么 pip 已经是最新的了却要求我升级?

    我全新安装了 python 3 7 1 64 位 并使用最新的 pyCharm 作为我的 IDE 我在这台机器上没有安装其他 python 我去安装 numpy 并收到以下消息 venv C Users John PycharmProjec
  • 类变量:“类列表”与“类布尔值”[重复]

    这个问题在这里已经有答案了 我不明白以下示例的区别 一次类的实例可以更改另一个实例的类变量 而另一次则不能 示例1 class MyClass object mylist def add self self mylist append 1
  • Pygame:有人可以帮我实现双跳吗?

    我知道已经有其他关于此问题的帖子了 但我的运动系统与我发现的有点不同 所以随后我问这个问题 我的运动系统基于一个名为的命名元组Move up left right down 然后就是这个 def update self move block
  • “KMeans”对象没有属性“k”

    我使用 Yellowbrick 包绘制数据集的肘部曲线 以使用 KMeans 作为模型找到数据集的最佳簇数 我正在使用 Scikit learn KMeans 和 Yellowbrick kelbowvisualizer 函数 生成了肘部曲
  • 在python中使用编解码器utf-8打开文件错误

    我在 windows xp 和 python 2 6 4 上执行以下代码 但它显示 IOError 如何打开名称带有 utf 8 编解码器的文件 gt gt gt open unicode txt euc kr encode utf 8 T
  • Django 1.7:如何使用 html/css 文件作为模板发送电子邮件

    从 Django 1 7 开始 可以send email 使用新参数 html message 不幸的是 没有关于如何使用它的全面指南 新手友好 或者至少我找不到它 我需要使发送的电子邮件变得漂亮 因此 我试图弄清楚如何将我的消息包含到 h
  • 列表中的特定范围(python)

    我有一个从文本字符串中提取的整数列表 因此当我打印该列表 我称之为test I get 135 2256 1984 3985 1991 1023 1999 我想打印或制作一个仅包含特定范围内的数字的新列表 例如1000 2000之间 我尝试
  • Django 管理通过 ImageField 链接到图像

    我已经设置了一个活动的 Django 模型 其中包含以下字段 class Activity models Model thumbnail models ImageField upload to thumbs blank True null
  • 如何使用 python 模块的多个 git 分支?

    我想使用 git 来同时处理我正在编写的模块中的多个功能 我目前正在使用 SVN 只有一个工作区 因此我的 PYTHONPATH 上只有该工作区 我意识到这不太理想 所以我想知道是否有人可以建议一种更 正确 的方法来做到这一点 让我用一个假
  • Django 中使用外键的抽象基类继承

    我正在尝试在 Django 支持的网站上进行模型继承 以遵守 DRY 我的目标是使用一个名为 BasicCompany 的抽象基类来为三个子类提供通用信息 Butcher Baker CandlestickMaker 它们位于各自的应用程序
  • HTMX 传递所选列表中的按钮值

    我正在尝试使用 Django 使用 htmx 制作一个应用程序 我创建了一个下拉列表
  • JSONDecodeError:额外数据:Python [重复]

    这个问题在这里已经有答案了 我使用以下代码从文件加载 json file file name obj list with open file as f for json obj in f obj list append loads json
  • 将二进制数转换为包含每个二进制数的数组

    我试图将二进制值转换为每个 1 0 的列表 但我得到默认的二进制值而不是列表 我有一个字符串 我将每个字符转换为二进制 它给了我一个列表 其中每个字符都有一个字符串 现在我试图将每个字符串拆分为值为 0 1 的整数 但我什么也得不到 if

随机推荐

  • -ObjC 上的矛盾框架

    所以在我的项目中我有 FacebookSDK ParseSDK 和 FirebaseSDK Facebook 和 parse 都需要螺栓 所以我实现了它 但是 除非我删除 ObjC 标志 否则它不会编译 问题是 如果我删除此标签 代码将编译
  • 在 pandas 中连接或附加大量 xlsx 文件的最佳且有效的方法

    熊猫新手在自学方面取得了一些进展 所以我想要最好 最有效的方法来处理这个问题 我有 3 个有时超过 3 个 excel 文件 xlsx 每个文件大约 100MB 每个文件至少有 800K 记录和 200 列 这些文件完全相同地共享相同的列
  • 如何在 Laravel 5.2 中使用 OR 条件将多个参数传递给中间件

    我正在尝试将访问操作的权限设置为两个不同的用户角色 Admin Normal User 如下所示 Route group middleware gt role check Normal User role check Admin funct
  • 如何更改 PreferenceScreen 中的字体大小

  • Vb.net Visual Studio 使用更新命令时出现问题

    您好 我正在从 sql 数据库创建一个搜索功能和更新按钮 我需要能够在其中搜索某些名称等 但还需要能够在数据集中进行更改并保存它们 到目前为止 搜索功能按照我想要的方式工作 但是 更新按钮并没有真正保存更改 因为当我停止并重新启动代码时 即
  • 如何使用 Entity Framework Core 进行全文搜索?

    我有以下查询 SELECT Animals name FROM Animals WHERE CONTAINS feline AND black 我在将其转换为 Entity Framework Core 查询时遇到问题 我有一个 SQL S
  • 如果作业不存在,如何从管道构建 Jenkins 作业而忽略该作业?

    我正在尝试从我的 Jenkins 管道中构建一个工作 如下所示 build job jobName propagate false wait false 这里 jobName 是一个多分支管道作业 因此有时可能不存在于我的工作流程中 如果作
  • 使用用户代理定位特定的黑莓手机

    我发现这个 javascript 可以检测黑莓设备
  • 如何用PyQt5设置窗口图标?

    from PyQt5 import QtWidgets QtGui from PyQt5 QtWidgets import from PyQt5 QtCore import class Application QMainWindow def
  • Magento 快速搜索

    我在使用 Magento 快速搜索时遇到一个小问题 当我在框中搜索时说 ice machine 然后一切都会返回原处ice or machine在标题中 我需要它 所以它只会搜索具有确切字符串的产品ice machine在标题中 我发现如果
  • 如何打印带有棋子位置列表的棋盘

    我正忙着做作业 我必须编写一个有 2 个 String 的函数 列表字符串包含 3 个字符 第一个是棋子 例如 K 国王 Q 后 R 车 B 主教 N 马 P 兵 第二个指定列 a h 第三个是行号 1 8 第一个字符串列表用于黑色棋子 第
  • 使用 Applescript/Automator 检查活动的互联网连接

    我有一个 Automator 工作流程来 ping 服务器 并下载我经常使用的时间表的最新副本 然后 该时间表会被复制到我的保管箱中 以便我可以在手机上查看 在工作流下载最新计划之前 它会从 Dropbox 中删除旧计划 这很有效 除非我没
  • 如何为 ui-bootstrap 日期选择器创建 angularJs 包装器指令?

    我正在使用ui bootstrap datepicker https angular ui github io bootstrap 显示某些日期字段的指令 然而 大多数时候我需要相同的设置 我希望它带有一个弹出窗口和一个弹出按钮 而且我还想
  • CLI 与 Node.js

    我正在节点中开发一个 CLI 它将发布到 NPM 由于它是一个 CLI 应用程序 我希望它在安装后包含在路径中 因此不需要键入 node my app js 来运行它 我希望它仅与 my app 一起运行 在 package json 中
  • Outlook 中的 HTML 电子邮件呈现 - VML

    我创建了一封 HTML 电子邮件 在 Outlook 2007 中查看时 我看不到某些图像 因为它们是背景 我已经使用 VML 做了一些修改 但是它不允许我将高度值留空 因为它默认为 100px 或者我无法输入自动或百分比 背景图像需要能够
  • 为什么delete会保留Array元素?

    今天我在 Stack Overflow 上偶然发现了一个问题 如何从 JavaScript 关联数组中删除对象 https stackoverflow com questions 346021 令我震惊的是 所接受的答案既具有误导性 又受到
  • 有人成功使用 Azure AD 对 Node.js Web 应用程序的用户进行身份验证吗?

    我正在尝试使用 Azure Active Directory 对我的 node js Web 应用程序的用户进行身份验证 但到目前为止还没有成功 我想知道是否有人真正实现了它 因为文档很差 通常有示例代码 但实际上没有任何指示所需参数是什么
  • tmux:如何打开光标下的文件

    我是 vim 用户并且习惯了gf命令 打开光标下的文件 现在我想问一下 tmux 是否有类似的东西 我可以在 tmux 窗格中导航 并且经常会出现光标下有一个文件路径的情况 现在我希望能够使用 vim 打开光标下的该文件 A 在当前窗口中
  • 堆栈跟踪或有关 Xcode/iPhone 中未处理异常的更多信息

    请原谅我的无知 但在 iPhone 模拟器中运行 iPhone 应用程序时 关于 Xcode 调试器的一些问题一直困扰着我 有时 当我在 Interface Builder 中搞砸一些东西时 我会在运行时遇到未处理的异常 然后被扔回 Xco
  • 无法使用react js将文件上传到djangorest框架

    我正在使用 React Js 将图像上传到 django Restframework 在这里我使用 fetch API 发送 post 请求 Eapp jsx import React Component from react class