Django Bad Esforce 400?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Django Bad Esforce 400?

Сообщение Anonymous »

Я прочитал много вопросов, так что в отношении кода ошибки 400 и понял, что проблема в основном, когда клиент не отправляет JSON, API ожидает. Тем не менее, я не могу обойти свою проблему кода ошибки 400. Я следую за этим учебником Thinkster Djangular, в регистрации раздела «Новые пользователи», я попадаю в плохой запрос 400. >from rest_framework import permissions, viewsets, status
from rest_framework.response import Response

from authentication.models import Account
from authentication.permissions import IsAccountOwner
from authentication.serializers import AccountSerializer

class AccountViewSet(viewsets.ModelViewSet):
lookup_field = 'username'
queryset = Account.objects.all()
serializer_class = AccountSerializer

def get_permissions(self):
if self.request.method in permissions.SAFE_METHODS:
return (permissions.AllowAny(),)

if self.request.method == 'POST':
return (permissions.AllowAny(),)

return (permissions.IsAuthenticated(), IsAccountOwner(),)

def create(self, request):
serializer = self.serializer_class(data=request.data)

if serializer.is_valid():
Account.objects.create_user(**serializer.validated_data)

return Response(serializer.validated_data, status=status.HTTP_201_CREATED)

return Response({
'status': 'Bad request',
'message': 'Account could not be created with received data.'
}, status=status.HTTP_400_BAD_REQUEST)
< /code>

Является ли метод создания здесь, который должен переопределить метод создания в классе Createmodelmixin? < /p>

Вот мои сериализаторы? .py < /p>

from django.contrib.auth import update_session_auth_hash

from rest_framework import serializers

from authentication.models import Account

class AccountSerializer(serializers.ModelSerializer):
password = serializers.CharField(write_only=True, required=False)
confirm_password = serializers.CharField(write_only=True, required=False)

class Meta:
model = Account
fields = ('id', 'email', 'username', 'created_at', 'updated_at',
'first_name', 'last_name', 'tagline', 'password',
'confirm_password',)
read_only_fields = ('created_at', 'updated_at',)

def create(self, validated_data):
return Account.objects.create_user(**validated_data)

def update(self, instance, validated_data):
instance.username = validated_data.get('username', instance.username)
instance.tagline = validated_data.get('tagline', instance.tagline)

instance.save()

password = validated_data.get('password', None)
confirm_password = validated_data.get('confirm_password', None)

if password and confirm_password and password == confirm_password:
instance.set_password(password)
instance.save()

update_session_auth_hash(self.context.get('request'), instance)

return instance
< /code>

Когда вы создаете объект, используя метод serializer .save (), атрибуты объекта устанавливаются буквально. Это означает, что пользователь, зарегистрированный в пароле «пароль», будет храниться как «пароль». Это плохо по нескольким причинам: 1) Хранение паролей в простом тексту - это огромная проблема безопасности. 2) Перед их сравнением хэши и паролей Django Haste и Salts Salts, поэтому пользователь не сможет войти в систему, используя «пароль» в качестве своего пароля. Использование Account.objects.create_user () для создания объекта учетной записи.>

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Django Bad Esforce 400?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Партнер по продаже API Amazon 400 Bad Esforce
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Tawk.to (бесплатный скрипт живого чата) выдает ошибку 400 Bad Request
    Гость » » в форуме Javascript
    0 Ответы
    70 Просмотры
    Последнее сообщение Гость
  • Tawk.to (бесплатный скрипт живого чата) выдает ошибку 400 Bad Request
    Гость » » в форуме Javascript
    0 Ответы
    88 Просмотры
    Последнее сообщение Гость
  • TotalVirus API v3: URL-адрес сканирования возвращает «HTTP 400 Bad Request» [дубликат]
    Anonymous » » в форуме Php
    0 Ответы
    96 Просмотры
    Последнее сообщение Anonymous

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