我正在使用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')),
]
但是我无法使用自定义模型创建用户,而当我转到user / account / create时,我会看到djoser的默认创建用户视图。请告诉我哪里做错了。谢谢 :)
请记住,您已将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'
}
...
}