Не удалось загрузить ресурс: сервер ответил статусом 401 (несанкционированный) - React & DjangoPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Не удалось загрузить ресурс: сервер ответил статусом 401 (несанкционированный) - React & Django

Сообщение Anonymous »

Я сталкиваюсь с кризисом в моей системе аутентификации, во время регистрации некоторые из полей, такие как первое и ладони, пароль и т. Д. Не хранятся в базе данных, что заставляет попытки входа в систему вернуть ошибку 401, я также проверял с Postman и в предварительном просмотре показывает недопустимые учетные данные. Я поместил в свой класс RegisterView оператор печати, чтобы проверить, достигают ли все поля данных бэкэнд, и это показывает, что они действительно делают < /p>

Код: Выделить всё

# Register User
class RegisterView(APIView):
permission_classes = [AllowAny]
def post(self, request):
print("Incoming Data from React:", request.data)
serializer = UserSerializer(data=request.data)
if serializer.is_valid():
user = serializer.save()
return Response({"message": "User registered succefully"}, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
< /code>
Я попытался сыграть с моим классом сериализатора Register, который, как я считаю, может вызвать проблемы только для того, чтобы гарантировать, что пропущенные поля также можно сохранить в базе данных, но все же не достигая результатов < /p>
class RegisterSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = [
'first_name', 'last_name', 'username', 'email', 'password', 'confirm_password', 'role',
'student_number', 'course_name', 'college',
'lecture_number', 'subject_taught', 'department'
]
extra_kwargs = {
'password': {'write_only': True},
'confirm_passwaord': {'write_only': True}
}

def validate(self, data):
if data['password'] != data['confirm_password']:
raise serializers.ValidationError({"password": "Passwords do not match."})

role = data.get('role')

if role == 'student':
if not all([data.get('student_number'), data.get('course_name'), data.get('college')]):
raise serializers.ValidationError(
{"student_info": "Students must provide student number, course name, and college."}
)

elif role == 'lecturer':
if not all([data.get('lecture_number'), data.get('subjects_taught'), data.get('department')]):
raise serializers.ValidationError(
{"lecturer_info": "Lecturers must provide lecturer number, subjects taught, and department."}
)

elif role == 'academic_registrar':
if not data.get('college'):
raise serializers.ValidationError(
{"academic_registrar_info": "Academic Registrars must belong to a college."}
)

elif role == 'admin':
if not data.get('college'):
raise serializers.ValidationError(
{"admin_info": "Administrators must be assigned to a college or the university."}
)

return data

def create(self, validated_data):
validated_data.pop('confirm_password')  # Remove confirm_password before saving

# Ensure first_name & last_name are properly extracted
first_name = validated_data.pop('first_name', '')
last_name = validated_data.pop('last_name', '')

validated_data['password'] = make_password(validated_data['password'])  # Hash the password
user = User.objects.create(**validated_data, first_name=first_name, last_name=last_name)

return user
Стипендиаты, пожалуйста, помогите, если вы можете


Подробнее здесь: https://stackoverflow.com/questions/795 ... authorized
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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