Size: a a a

Django [ru] #STAY HOME

2020 June 16

D

Dk in Django [ru] #STAY HOME
Гуглил и чиатл документацию rest_framework, но без примеров не очень понятно
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Dk
Как правильно валидировать query_params? Я написал сериализатор и отдаю их ему, но это не работает когда я генерю документацию, отсюда я сделал вывод, что я делаю неправильно
а зачем?
источник

D

Dk in Django [ru] #STAY HOME
Закрою глаза на то, что вопрос глупый и всё-таки отвечу: чтобы использовать их.

Допустим, у меня есть ListAPIView, который принимает param1, offset, count и confirmed
Три параметра - числа, один bool.
В коде я делаю фильтрацию:
queryset = self.queryset.filter(confirmed=confirmed).filter(param1=param1)
return queryset[offset:count]
источник

D

Dk in Django [ru] #STAY HOME
Нужно говорить, что мне надо убедиться, что param1, offset и count  - числа, а confirmed - bool? Иначе будет исключение?
источник

D

Dk in Django [ru] #STAY HOME
Вы не валидируете входящие параметры?
источник

RP

Ruslan Popov in Django [ru] #STAY HOME
Dk
Вы не валидируете входящие параметры?
большинство не валидирует )
источник

RP

Ruslan Popov in Django [ru] #STAY HOME
Marshmallow - нормальный вариант
источник

A

Andrey in Django [ru] #STAY HOME
Ruslan Popov
Marshmallow - нормальный вариант
Идеальный
источник

D

Dk in Django [ru] #STAY HOME
Для джанго - маршмеллоу?
источник

A

Andrey in Django [ru] #STAY HOME
Сильно плюсую маршмелоу
источник

D

Dk in Django [ru] #STAY HOME
А чё, собственных филдов для валидации нет?
источник

D

Dk in Django [ru] #STAY HOME
Вроде есть, только не понял как их правильно использовать
источник

RP

Ruslan Popov in Django [ru] #STAY HOME
Dk
А чё, собственных филдов для валидации нет?
не, ну можно закинуть параметры в форму и через неё сделать валидацию
источник

D

Dk in Django [ru] #STAY HOME
Как минимум честная валидация поможет сгенерировать доки через rest и избежать кучи ошибок
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
Dk
Вы не валидируете входящие параметры?
я (как глупый человек) ручками проверяю там где это критично
источник

D

Dk in Django [ru] #STAY HOME
Nikolay Cherniy
я (как глупый человек) ручками проверяю там где это критично
так?
try: 
   param1 = int(param1)
   assert param1 in range(0,2)
except:
    raise bla-bla
источник

NC

Nikolay Cherniy in Django [ru] #STAY HOME
я больше за if else
источник

D

Dk in Django [ru] #STAY HOME
Я написал сериализатор и пихаю кверисет в него, но опять же повторюсь - такой метод мне кажется неправильным
источник

D

Dk in Django [ru] #STAY HOME
Хотя, более чистый, чем у вас
источник

AD

Alex Dem in Django [ru] #STAY HOME
Dk
так?
try: 
   param1 = int(param1)
   assert param1 in range(0,2)
except:
    raise bla-bla
try except ресурсоемкая операция, и если можно обойтись без, то лучше обойтись
источник