Size: a a a

Django [ru] #STAY HOME

2020 June 23

AL

Artyom Lazovikov in Django [ru] #STAY HOME
да, ванила
источник

AL

Artyom Lazovikov in Django [ru] #STAY HOME
#     product_filter = ProductFilter(request.GET, queryset=products_list)
вот как работал фильтр в фбв, пытался сделать тоже самое в get_queryset - что-то не получилось
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Artyom Lazovikov
#     product_filter = ProductFilter(request.GET, queryset=products_list)
вот как работал фильтр в фбв, пытался сделать тоже самое в get_queryset - что-то не получилось
я не особо копался
у меня так
источник

AL

Artyom Lazovikov in Django [ru] #STAY HOME
спасибо, сейчас попробую разобраться
источник

DT

Dan Tyan in Django [ru] #STAY HOME
единственное тебе не надо self.category передавать в фильтр
это уже мои заморочки
источник

D

Denis in Django [ru] #STAY HOME
Всем привет!

Надо по oтдeльнocти проверять каждое поле при регистрации.

Например ввёл email и мне сразу же проверили его наличие в базе.

В голову приходят только три способа реализации.

1) Сделать отдельные эндпоинты для каждого поля например /api/v1/users/validate_<field_name> и написать логику там. После в клиенте общаться к этому эндпоинту.

2) Обращаться к эндпоинту регистрации /api/v1/registration/ и получать от него Bad Request'ы с ошибкой валидации например:
{
   "email": [
       "Enter a valid email address."
   ],
   "phone": [
       "This field is required."
   ],
   ...
}
3) Для каждой клиентской части браузер/мобильное приложение написать свою логику проверки полей.

Какой из способов норм? Если все так себе, то можете предложить свой вариант.

Спасибо!
источник

ЯК

Ярослав Коробейников... in Django [ru] #STAY HOME
user = User.objects.filter(email="some_email@gmail.com")

if user.exists():
 self.some_method_need_instance_of_user(user.get())
else:
// Another logic

user.exists() делает дополнительный запрос в базу данных?
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
да
источник

D

Dmitry in Django [ru] #STAY HOME
if user
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
но дешевый)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ярослав Коробейников
user = User.objects.filter(email="some_email@gmail.com")

if user.exists():
 self.some_method_need_instance_of_user(user.get())
else:
// Another logic

user.exists() делает дополнительный запрос в базу данных?
в смысле дополнительный

пока только единственный
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ярослав Коробейников
user = User.objects.filter(email="some_email@gmail.com")

if user.exists():
 self.some_method_need_instance_of_user(user.get())
else:
// Another logic

user.exists() делает дополнительный запрос в базу данных?
email__iexact="some_email@gmail.com"
источник

DT

Dan Tyan in Django [ru] #STAY HOME
а нет
exists - запрос
get - запрос
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Dmitry
if user
queryset всегда True
источник

ЯК

Ярослав Коробейников... in Django [ru] #STAY HOME
Лучше если бы было?

user = User.objects.filter(email="some_email@gmail.com").first()

if user is not None:
 self.some_method_need_instance_of_user(user)
else:
// Another logic


???
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ярослав Коробейников
Лучше если бы было?

user = User.objects.filter(email="some_email@gmail.com").first()

if user is not None:
 self.some_method_need_instance_of_user(user)
else:
// Another logic


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

NC

Nikolay Cherniy in Django [ru] #STAY HOME
не пиши if user is not None:
источник

D

Dmitry in Django [ru] #STAY HOME
Dan Tyan
queryset всегда True
а точно, извините
источник

ЯК

Ярослав Коробейников... in Django [ru] #STAY HOME
Nikolay Cherniy
не пиши if user is not None:
Почему?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Denis
Всем привет!

Надо по oтдeльнocти проверять каждое поле при регистрации.

Например ввёл email и мне сразу же проверили его наличие в базе.

В голову приходят только три способа реализации.

1) Сделать отдельные эндпоинты для каждого поля например /api/v1/users/validate_<field_name> и написать логику там. После в клиенте общаться к этому эндпоинту.

2) Обращаться к эндпоинту регистрации /api/v1/registration/ и получать от него Bad Request'ы с ошибкой валидации например:
{
   "email": [
       "Enter a valid email address."
   ],
   "phone": [
       "This field is required."
   ],
   ...
}
3) Для каждой клиентской части браузер/мобильное приложение написать свою логику проверки полей.

Какой из способов норм? Если все так себе, то можете предложить свой вариант.

Спасибо!
сделай отдельный поинт аля /registration/check/
посылай в него по одному полю
источник