当前位置: 首页 > 知识库问答 >
问题:

Django Rest Framework Postman 'POST' 请求错误

杜起运
2023-03-14

当我尝试向邮递员发送邮件请求时,仍然会出现这个错误。

{
    "username": [
        "This field is required."
    ],
    "password": [
        "This field is required."
    ]
}

我可以从我的DRFlocalhost成功地发出相同的帖子请求,但是当我尝试邮递员时,我得到了上面的错误。

我该怎么解决呢?

Views.py


class PlayThingList(viewsets.ModelViewSet):
    serializer_class = PlayThingSerializer
    queryset = PlayThing.objects.all()

class UserViewset(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

Serializers.py

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User 
        fields = ['id', 'username', 'password']

        extra_kwargs = {'password': {
            'write_only':True,
            'required':True
        }}

    def create(self, validated_data):
        user = User.objects.create_user(**validated_data)
        Token.objects.create(user)
        return user

urls.py

router = DefaultRouter()
router.register('playthings', PlayThingList, basename='playthings')
router.register('users', UserViewset)




urlpatterns = [
    path('playmates/', include(router.urls)),
]

项目urls.py


from django.contrib import admin
from django.urls import path, include
from rest_framework.authtoken.views import obtain_auth_token
app_name = 'playthings'

urlpatterns = [
    path('admin/', admin.site.urls),
    path("", include('playthings.urls')),
    path('auth/', obtain_auth_token)
]

更新

我根据评论中的错误消息和指南进行了一些更改,现在可以创建用户了。

问题是,在发送表单中的用户凭据后,我在postman中收到了这个错误。

共有3个答案

梁丘飞鸾
2023-03-14

问题解决!

问题出在令牌 create() 方法上。我变了

create(user) to create(user=user)

裁判:serializers.py

def create(self, validated_data):
        user = User.objects.create_user(**validated_data)
        Token.objects.create(user=user)
        return user

感谢所有帮助过的人!

欧阳嘉
2023-03-14

在您的用户视图集中,您正在使用用户序列化程序。这样,您就无法创建用户。要创建用户,您必须扩展注册用户功能。

从 rest-framework 中查看代码,并在用户视图集的创建方法中使用相同的逻辑。如果要注册用户。

注册用户是一件完全不同的事情。

Rest框架默认有一个url来注册用户,使用那个url,它会为你处理一切。

艾弘义
2023-03-14

尝试在POSTMAN中添加以下内容

标题部分:

 类似资料:
  • 我正在使用实现一个联系人应用程序。现在,我正试图通过发送以下格式的put请求来更新联系人 我将XML作为字符串发送,作为请求的主体。这是我的xmlString(请求主体) 我写了下面的代码来发送更新联系人的PUT请求。 当我试图在中发送请求时,联系人更新成功。但是当我试图运行上面的程序时,我得到了 400错误请求错误 我不知道我哪里出错了。任何帮助都将不胜感激!

  • 我正在为一个项目使用Hackerrank API。查看官方文档,点击这里! 在他们的网站上有一个使用UNIREST的例子, 由于我使用的是axios,所以我将其转换为类似的axios代码,如下所示: 我希望这只适用于示例中所示的示例,但它给我带来了以下错误: 请求失败,状态代码为400 错误:请求失败,状态代码为400 在createError(createError.js:16) 在sett(s

  • 我正在尝试从访问代码中获取访问令牌。但存在 400 错误请求错误的错误 我正在使用此链接获取访问代码 https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 响应此链接,我正在获取查询字符串中的代码,返回 URL 代码=Mh12d04c8

  • 我正在尝试使用HttpUrlConnection发送帖子。一切看起来都很好,但它保持返回400,就好像参数不是在DataOutputStream中发送的,或者是以错误的方式发送的。 这是返回的内容: 这很奇怪,因为这个卷曲正常工作: 它会返回我想要的访问令牌

  • 我收到了400个坏请求,但我不知道为什么。对我来说一切都很好。我会很感激一些想法... 而服务器端我只是想得到列表并在这里打印出来

  • 我有一个基于Spring Web model view controller(MVC)框架的项目。Spring Web模型-视图-控制器(MVC)框架的版本是3.2.8 我有这个控制器 这个URL一切正常:

  • 目前从Angular JS controller中,我试图将JSON数据发送到后端服务。但是我有400个错误的请求错误。 在Controller中,我试图通过http服务发送数据,如下所示:

  • 我得到了这个错误,有什么想法会导致它吗?我试图发送一个DTO,它有一个扩展抽象类的对象列表,我想这个问题可能是因为DTO中的列表,还是因为抽象类的子类?