【发布时间】:2018-06-19 19:39:43
【问题描述】:
我尝试通过 POST 创建一个新用户(django 用户)
序列化器.py
from rest_framework import serializers
from .models import *
from django.contrib.auth.models import User
class UsuarioSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('email',
'password')
views.py:
class Registrar(mixins.CreateModelMixin, viewsets.GenericViewSet):
serializer_class = UsuarioSerializer
urls.py:
from django.urls import path, include
from . import views
from rest_framework import routers
router = routers.DefaultRouter()
router.register('usuarios', views.UsuarioViewSet)
router.register('tecnicos', views.TecnicoViewSet)
router.register('pedidos', views.PedidoViewSet)
router.register('mispedidos', views.PedidoMiUsuarioSet)
router.register('registrar', views.Registrar, base_name = 'registro')
urlpatterns = [
path('', include(router.urls))
]
当我发帖时,我收到此错误: UNIQUE 约束失败:auth_user.username
如果我将模型 User 更改为 Usuario...
模型.py:
class Usuario(models.Model):
email = models.EmailField(max_length=70, blank=True, null=True, unique=True)
password = models.TextField()
def __str__(self):
return self.email
但我需要使用来自 django 的用户模型
【问题讨论】:
-
等一下,不要通过 API 访问密码(即使这些是经过哈希处理的)!!
-
失败的原因是,就像错误所说的那样,您已经有一个带有
username的User。
标签: django django-rest-framework django-users serialization