Я стажер в компании, и мы используем django в качестве платформы.
Я работал над системой регистрации, состоящей из двух частей, в которой администратор выполняет первоначальную регистрацию, после чего пользователю отправляется ссылка через SMS, чтобы пользователь мог завершить регистрацию.
У меня есть ощущение, что нужно использовать функцию get_or_create для назначения глобальной переменной, но я боюсь сломать это (я использую git, но я все еще напуган).
class RegisterSerializer(serializers.ModelSerializer):
"""Class for registering users with multiple groups."""
# is_superuser = serializers.BooleanField(default=False, required=False, write_only=True)
class Meta:
fields = [
"national_code",
"phone_number",
]
model = User
extra_kwargs = {
"national_code": {"write_only": True, "validators": []},
"phone_number": {"write_only": True, "validators": []},
}
def validate(self, attrs):
if not attrs.get("national_code"):
raise serializers.ValidationError(_("National code is required."))
if not attrs.get("phone_number"):
raise serializers.ValidationError(_("Phone number is required."))
if User.objects.filter(
phone_number=attrs.get("phone_number"),
national_code=attrs.get("national_code"),
is_complete=True,
).exists():
raise serializers.ValidationError(_("user already exists"))
# if User.objects.filter(phone_number=attrs.get("phone_number")).exists():
# raise serializers.ValidationError(_("Phone number already exist."))
return attrs
def create(self, validated_data):
phone_number = validated_data["phone_number"]
national_code = validated_data["national_code"]
user, created = User.objects.get_or_create(
phone_number=phone_number, national_code=national_code, defaults={"is_complete": False}
)
token = RegisterToken.for_user(user)
try:
Sms.sendSMS(
phone_number,
f"{str(settings.DOMAIN_NAME)}/api/accounts/complete-register/?token={str(token)}",
)
# do not delete this part soon or later we will use this
# Sms.SendRegisterLink(
# phone_number,
# [
# {
# 'national_code':national_code,
# 'domain_name':settings.DOMAIN_NAME,
# 'token':token
# },
# ],
# )
return user
except Exception as err:
raise ValidationError(_("Failed to send SMS: ") + str(err)) from err
Подробнее здесь: https://stackoverflow.com/questions/798 ... l-variable
Могу ли я использовать get_or_create() в django для назначения глобальной переменной? ⇐ Python
Программы на Python
1761893832
Anonymous
Я стажер в компании, и мы используем django в качестве платформы.
Я работал над системой регистрации, состоящей из двух частей, в которой администратор выполняет первоначальную регистрацию, после чего пользователю отправляется ссылка через SMS, чтобы пользователь мог завершить регистрацию.
У меня есть ощущение, что нужно использовать функцию get_or_create для назначения глобальной переменной, но я боюсь сломать это (я использую git, но я все еще напуган).
class RegisterSerializer(serializers.ModelSerializer):
"""Class for registering users with multiple groups."""
# is_superuser = serializers.BooleanField(default=False, required=False, write_only=True)
class Meta:
fields = [
"national_code",
"phone_number",
]
model = User
extra_kwargs = {
"national_code": {"write_only": True, "validators": []},
"phone_number": {"write_only": True, "validators": []},
}
def validate(self, attrs):
if not attrs.get("national_code"):
raise serializers.ValidationError(_("National code is required."))
if not attrs.get("phone_number"):
raise serializers.ValidationError(_("Phone number is required."))
if User.objects.filter(
phone_number=attrs.get("phone_number"),
national_code=attrs.get("national_code"),
is_complete=True,
).exists():
raise serializers.ValidationError(_("user already exists"))
# if User.objects.filter(phone_number=attrs.get("phone_number")).exists():
# raise serializers.ValidationError(_("Phone number already exist."))
return attrs
def create(self, validated_data):
phone_number = validated_data["phone_number"]
national_code = validated_data["national_code"]
user, created = User.objects.get_or_create(
phone_number=phone_number, national_code=national_code, defaults={"is_complete": False}
)
token = RegisterToken.for_user(user)
try:
Sms.sendSMS(
phone_number,
f"{str(settings.DOMAIN_NAME)}/api/accounts/complete-register/?token={str(token)}",
)
# do not delete this part soon or later we will use this
# Sms.SendRegisterLink(
# phone_number,
# [
# {
# 'national_code':national_code,
# 'domain_name':settings.DOMAIN_NAME,
# 'token':token
# },
# ],
# )
return user
except Exception as err:
raise ValidationError(_("Failed to send SMS: ") + str(err)) from err
Подробнее здесь: [url]https://stackoverflow.com/questions/79805468/can-i-use-get-or-create-in-django-to-assign-a-global-variable[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия