带有 DRF 错误的 Djoser 用户名字段是必需的

Has*_*Ali 5 python django django-rest-framework djoser

我正在将 djoser 与 django Rest 框架一起使用,并且我想从创建用户表单中删除用户名字段:

settings.py:

'SERIALIZERS': {
    'user_create': 'user.serializers.UserRegistrationSerializer',
},
Run Code Online (Sandbox Code Playgroud)

serializers.py:

class UserRegistrationSerializer(BaseUserRegistrationSerializer):
    class Meta(BaseUserRegistrationSerializer.Meta):
        fields = ('email', 'password')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误。你如何解决这个问题?

TypeError at /auth/users/create
create_user() missing 1 required positional argument: 'username'
Run Code Online (Sandbox Code Playgroud)

Kam*_*ski 0

根据 djoser 文档User Create

使用此端点注册新用户。您的用户模型管理器应该实现create_user方法并具有USERNAME_FIELDREQUIRED_FIELDS字段

您必须自定义用户模型而不是序列化器。

事实上,我不认识你使用的属于 djoser 的序列化器。

附加问题:

  • 您想替换username为吗email