Создание пользователя в django с помощью Rest Framework
Я видел, что люди используют различные способы создания пользователя в django Rest framework. я пробовал & ни один из них не работает для меня. иногда он говорит Ошибка ключа: Groups или что-то еще. поэтому я попробовал этот способ без is_valid & он работает как шарм. является ли этот способ безопасным для создания пользователя, или если нет, то почему & как я должен создавать пользователя в представлениях?
#my views.py
@api_view(['GET','POST'])
def getUserData(request):
if request.method == 'POST':
user = User.objects.create_user(
username=request.data['username'],
password=request.data['password'])
serializer = userSerializer(user)
return Response(serializer.data)
ну я бы хотел сначала использовать проверенные данные из сериализатора следующим образом:
@api_view(['GET','POST'])
def getUserData(request):
if request.method == 'POST':
serializer = userSerializer(user)
username = serializer.validated_data.get('username')
password = serializer.validated_data.get('password')
user = User.objects.create_user(username=username, password=password)
return Response(serializer.data)
измените вид, как показано ниже, это тоже работает,
@api_view(["GET", "POST"])
def getUserData(request):
if request.method == "POST":
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(status=status.HTTP_400_BAD_REQUEST)
здесь UserSerializer:
class UserSerializer(serializers.ModelSerializer):
username=serializers.CharField()
password=serializers.CharField()
class Meta:
model = User
fields=['username','password']
и models.py (я использую пользовательскую модель пользователя, но без изменений от оригинальной модели пользователя, которая предоставляется самим Django):
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass