Django.db.utils.IntegrityError: (1048, "Column 'user_id' cannot be null") в DRF
У меня есть приложение, и я использую django.contrib.auth.models.User
в качестве модели аутентификации, затем я использую для сериализатора:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = '__all__'
# fields = ['first_name', 'last_name', 'email', 'password', 'username']
def validate(self, attrs):
if 'name' in attrs.keys():
name = attrs['name']
name = name.split(' ')
first_name, last_name = name[0], name[1]
attrs['first_name'], attrs['last_name'] = first_name, last_name
attrs['password'] = make_password(attrs['password'])
return attrs
затем я использую для набора представлений:
class UserViewSet(viewsets.ViewSet):
permission_classes = (permissions.AllowAny,)
# authentication_classes = (TokenAuthentication)
...
def create(self, request):
# return response.Response(data=request.data)
# user = User.objects.filter(username=request.data['username']).exists()
# return response.Response(data= user)
if User.objects.filter(username=request.data['username']).exists():
serials = UserSerializer(
data=request.data,
context={'request': request}
)
user = None
if serials.is_valid():
user = serials.save()
else:
user = UserSerializer(request.data, many=True)
token, created = Token.objects.get_or_create(user=user)
return response.Response(
data={
'token': token.key,
'user': UserSerializer(user).data
}
)
...
После этого я получил эту ошибку:
django.db.utils.IntegrityError: (1048, "Column 'user_id' cannot be null")