gpt4 book ai didi

django - 自定义 djoser 创建用户端点

转载 作者:行者123 更新时间:2023-12-04 04:02:08 26 4
gpt4 key购买 nike

我正在使用 djoser 进行身份验证。我想自定义 djoser 的创建用户端点。我有一个用户应用程序。这是我的用户模型

from django.db import models


class User(models.Model):
email = models.CharField(max_length=100, blank=False)
name = models.CharField(max_length=100, blank=False)
last_name = models.CharField(max_length=100, blank=False)
account_address = models.CharField(max_length=30, blank=False)
password = models.CharField(max_length=100, blank=False)

这是我的序列化程序
from rest_framework import serializers
from User.models import User


class UserSerializer(serializers.HyperlinkedModelSerializer):

class Meta:
model = User
fields = ('url', 'id', 'email', 'name', 'last_name', 'account_address', 'password')

我的 User.urls.py 如下所示
from django.conf.urls import url, include
from rest_framework.routers import DefaultRouter

from .views import UserViewSet

router = DefaultRouter()

urlpatterns = [
url(r'^', include(router.urls)),
url(r'^account/', include('djoser.urls')),
]

项目的 url.py 如下
from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url

urlpatterns = [
path('admin/', admin.site.urls),
url(r'^users/', include('User.urls')),
url(r'^advertisements', include('advertisements.urls')),
url(r'^account', include('wallet.urls')),
]

但是当我转到用户/帐户/创建时,我无法使用自定义模型创建用户,我看到 djoser 的默认创建用户 View 。任何人请告诉我哪里做错了。谢谢 :)

最佳答案

请记住,您已经设置了 AUTH_USER_MODEL给您的 User模型。

只需导入 Djoser 用户注册序列化程序并覆盖它。

from djoser.serializers import UserCreateSerializer as BaseUserRegistrationSerializer

class UserRegistrationSerializer(BaseUserRegistrationSerializer):
class Meta(BaseUserRegistrationSerializer.Meta):
fields = ('url', 'id', 'email', 'name', 'last_name', 'account_address', 'password', )

您还可以覆盖序列化程序中的其他内容,例如 create and update methods如果您想自定义它。

在 settings.py 中
DJOSER = {
...
'SERIALIZERS': {
'user_create': 'yourapp.serializer.UserRegistrationSerializer'
}
...
}

关于django - 自定义 djoser 创建用户端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49095424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com