如 DRF 文档http://www.django-rest-framework.org/api-guide/parsers/#multipartparser中所述,为了解析 multipart/form-data,必须使用 MultiPart 和表单解析器。我怀疑这是 Django Rest Framework 中的一个问题,因为我在他们的 github 问题上看到了一个解决方案,说它可以使用 APIView 工作。
from django.contrib.auth.models import User
from rest_framework import viewsets
from api.serializers import UserSerializer,
from rest_framework.parsers import MultiPartParser, FormParser
from rest_framework.response import Response
from rest_framework import status
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all()
parser_classes = (MultiPartParser, FormParser)
serializer_class = UserSerializer
Run Code Online (Sandbox Code Playgroud)
我向邮递员发送请求的结果的图片:

编辑:添加 UserSerializer 类
class UserSerializer(serializers.HyperlinkedModelSerializer):
snapcapsules = SnapCapsuleSerializer(
many=True,
read_only=True,
allow_null=True,
)
class Meta: …Run Code Online (Sandbox Code Playgroud) 我正在尝试部署我的 svelte 项目,但在 livereload 插件之外激活捆绑 javascript 时遇到问题。当我运行 rollup -c -w 时,代码显示正常,但使用其他服务器为应用程序提供服务不会激活 javacsript。它至少应该在 console.log 中记录一些内容,并希望添加 html,但它只显示一个空白页面。
rollup.config.js
import svelte from "rollup-plugin-svelte";
import resolve from "@rollup/plugin-node-resolve";
import commonjs from "@rollup/plugin-commonjs";
import livereload from "rollup-plugin-livereload";
import replace from "@rollup/plugin-replace";
import { terser } from "rollup-plugin-terser";
import postcss from "rollup-plugin-postcss";
import babel from "rollup-plugin-babel";
export default {
input: "src/main.js",
output: {
sourcemap: true,
format: "iife",
name: "app",
file: "public/build/bundle.js"
},
plugins: [
babel({
exclude: "node_modules/**"
}),
svelte({
// enable run-time checks when not in …Run Code Online (Sandbox Code Playgroud) 我是django rest框架jwt令牌包。由于某种原因,它没有收到令牌凭证。我确定我使用正确格式的axios来存储令牌。我不确定错误是前端还是后端。我在后端使用pythonanywhere。
Settings.py
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
),
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}
Run Code Online (Sandbox Code Playgroud)
前端
handleFormSubmit(e) {
e.preventDefault();
if (this.getValidationState() == 'error') {
this.setState({invalidFormSubmit: true})
return;
}
axios.defaults.headers.common['Authorization'] = 'Token ' + this.props.auth.getToken();
console.log(this.props.auth.getToken());
var capsule = new MyForm();
capsule.append("user", this.state.userUrl);
capsule.append("dateToPost", this.state.dateToPost.format());
capsule.append("image", this.state.image);
capsule.append("caption", this.state.caption);
capsule.append("dateToDelete", this.state.dateToPost.add(1, "d").format());
axios.post(this.props.auth.domain + "/snapcapsule/", capsule)
.then(() => {
this.setState({redirect: true})
}).catch(err =>{
alert(err);
})
}
Run Code Online (Sandbox Code Playgroud)
错误
{“详细信息”:“未提供身份验证凭据。”}
我正在尝试修复一个错误,但我不确定是否应该在 javascript 中查找它。或者,我应该在 css 代码中查找它。通过最小化浏览器,显示的内容会减少,并且控制台中的标签会闪烁紫色。
我的问题与chrome 检查器在 body tag 上显示闪烁完全不同。这篇文章甚至不是一个问题,人们就投票了。这篇文章没有解决为什么 html 标签闪烁紫色的问题,只是说这个问题可以通过不移动滑块来解决。我想问一下更新的原因。如果您认为这个问题不好,请解释一下原因?