Size: a a a

Django [ru] #STAY HOME

2019 May 05

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
источник

NK

ID:461990605 in Django [ru] #STAY HOME
спасибо
источник

NK

ID:461990605 in Django [ru] #STAY HOME
ID:461990605
Привет. Можно ли как-то игнорировать ошибки form.is_valid()? Вот код - https://gist.github.com/goncharovEd/afb512c5117089df7af053e6dda0d7de . Я хочу сам отлавливать ошибки создания нового пользователя, а именно username already exists и email address already exists. Потому, что потом результаты запроса будут отправляться на front_end(мобильное приложение) и будет намного легче, если я буду отправлять json примерно такого формата - '{"status": "error", "error_code": 600}' и когда фонт_энд прочитает в ответе 600, то выведет пользователю "email занят" или, если код 601, например, то выведет пользователю "username занят".  

Или так не делается, и фронэнд должен сам залазить в ответ >data>email/username и проверять есть ли там, что-то?
еще вопрос по поводу этого кода: как создавать пользователя, чтобы пароль в бд был зашифроанный как при создании superuser'a? Или как загуглить это? Помню раньше как то это делал, но тот проект удалил.
источник

А

Алексей in Django [ru] #STAY HOME
ID:461990605
еще вопрос по поводу этого кода: как создавать пользователя, чтобы пароль в бд был зашифроанный как при создании superuser'a? Или как загуглить это? Помню раньше как то это делал, но тот проект удалил.
etot_user.set_password(), потом только save() не забудь еще
источник

NK

ID:461990605 in Django [ru] #STAY HOME
Алексей
etot_user.set_password(), потом только save() не забудь еще
serializer.save() - после этого мне нужно найти пользователя, а потом установить пароль?
а то если так:
serializer.save()
serializer.set_password(serializer.password)

то - 'UserSerializer' object has no attribute 'set_password'
источник

А

Алексей in Django [ru] #STAY HOME
ID:461990605
serializer.save() - после этого мне нужно найти пользователя, а потом установить пароль?
а то если так:
serializer.save()
serializer.set_password(serializer.password)

то - 'UserSerializer' object has no attribute 'set_password'
serializer.object
источник

NK

ID:461990605 in Django [ru] #STAY HOME
Алексей
serializer.object
м?
источник

АА

Адилет Асанкожоев in Django [ru] #STAY HOME
ID:461990605
м?
obj = serializer.save()
obj.set_password()
obj.save()
источник

NK

ID:461990605 in Django [ru] #STAY HOME
спасибо
источник

a

am in Django [ru] #STAY HOME
ID:461990605
serializer.save() - после этого мне нужно найти пользователя, а потом установить пароль?
а то если так:
serializer.save()
serializer.set_password(serializer.password)

то - 'UserSerializer' object has no attribute 'set_password'
можно делать проще все
def create(self, validated_data):
       user = User.objects.create_user(**validated_data)
       return user
create_user сам установит password, добавить в ModelSerializer
источник

NK

ID:461990605 in Django [ru] #STAY HOME
am
можно делать проще все
def create(self, validated_data):
       user = User.objects.create_user(**validated_data)
       return user
create_user сам установит password, добавить в ModelSerializer
спасибо
источник

NK

ID:461990605 in Django [ru] #STAY HOME
а что- то подобное -
user = User.objects.get(email=email, password=password or username=email, password=password)
можно писать? Два варинта подбора типа
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ID:461990605
а что- то подобное -
user = User.objects.get(email=email, password=password or username=email, password=password)
можно писать? Два варинта подбора типа
так пароль не сравнивают
источник

NK

ID:461990605 in Django [ru] #STAY HOME
Dan Tyan
так пароль не сравнивают
user = User.objects.get(Q(username__iexact=email) | Q(email__iexact=email))
     if user.check_password(password):
       return user

так нужно?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
ID:461990605
user = User.objects.get(Q(username__iexact=email) | Q(email__iexact=email))
     if user.check_password(password):
       return user

так нужно?
да
источник

NK

ID:461990605 in Django [ru] #STAY HOME
а вот это -
Q(username__iexact=email) | Q(email__iexact=email)
нормально? как то стремно выглядит
источник

DT

Dan Tyan in Django [ru] #STAY HOME
что имено тебя смущает ?
источник

NK

ID:461990605 in Django [ru] #STAY HOME
Q, __iexact
источник

DT

Dan Tyan in Django [ru] #STAY HOME
да все правильно
источник

NK

ID:461990605 in Django [ru] #STAY HOME
спасибо
источник