«POST/user/create/HTTP/1.1» 500 82190Python

Программы на Python
Ответить
Anonymous
 «POST/user/create/HTTP/1.1» 500 82190

Сообщение Anonymous »

У меня возникла проблема с настройкой аутентификации в django rest. Каждый раз, когда я пытаюсь создать пользователя, используя запрос на публикацию по этому URL-адресу http://127.0.0.1:8000/user/create/, я получаю эту ошибку: AssertionError: ожидался ответ, HttpResponse или HttpStreamingResponse, который будет возвращен из представления, но получен
[09/Apr/2021 14:41:43] «POST /user/create/HTTP/1.1» 500 82190
. Я пробовал различные решения, но безуспешно.
views.py
from rest_framework_simplejwt.views import TokenObtainPairView
from rest_framework.views import APIView
from rest_framework import status, permissions
from rest_framework.response import Response
from .serializers import TokenObtainPairSerializer
from rest_framework.generics import CreateAPIView

from .serializers import CustomUserSerializer, MyTokenObtainPairSerializer

class CustomUserCreate(APIView):
permission_classes = (permissions.AllowAny,)

def post(self, request, format = 'json'):
serializer = CustomUserSerializer(data= request.data)
if serializer.is_valid():
user = serializer.save()
if user:
json = serializer.data
return Response(status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

serializers.py
from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
from rest_framework import serializers
from .models import CustomUser

class CustomUserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(required=True)
username = serializers.CharField()
password = serializers.CharField(min_length = 8, write_only= True)

class Meta:
model = CustomUser
fields = ('email', 'username', 'password')
extra_kwargs = {'password': {'write_only': True}}

def create(self, validated_data):
password = validated_data.pop('password', None)
instance = self.Meta.model(**validated_data)

if password is not None:
instance.set_password(password)
instance.save()
return instance

urls.py
from django.urls import path
from rest_framework_simplejwt import views as jwt_views
from .views import ObtainTokenPairWithColorView, CustomUserCreate, HelloWorld

urlpatterns = [
path('user/create/', CustomUserCreate.as_view(), name="create_user"),
]


Подробнее здесь: https://stackoverflow.com/questions/670 ... -500-82190
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»