LINUX.ORG.RU
Ответ на: комментарий от AntonI

вызов без параметра ['']

вызов с двумя параметрами [‘some1’, ‘some2’, '']

В первом случае param_fields не равно None, во втором мусорное '' в конце списка

bryak ★★★★
() автор топика
Последнее исправление: bryak (всего исправлений: 3)
Ответ на: комментарий от bryak

Ну тогда можно попробовать убрать '' из параметров вызова get()

Я просто думал что request.GET это словарь. Что будет если туда неверный параметр попадет?

AntonI ★★★★★
()
Ответ на: комментарий от bryak

Ну если он вернет пустую строку то все будет ок.

AntonI ★★★★★
()

Не спец, так не сработает?

x = request.GET.get('fields')
param_fields = x and x.split(',') or None

anonymous
()

Наркомания какая, причём тут lambda?

Если обязательно надо None, то подсыплю:

param_fields = 'fields' in request.GET and \
               request.GET.get('fields').split(',') or None

Но, @AntonI всё правильно сказал, надо просто:

param_fields = request.GET.get('fields', '').split(',')

И params_fields не должен быть None, там либо список полей, либо пустой список.

Убрать пустые элементы:

param_fields = [*filter(None, request.GET.get('fields', '').split(','))]
vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 2)

очень хочется сделать params_comma_splitter и повесить его декоратором

max_lapshin ★★★★★
()

Я так понимаю, на котлине ты уже не пишешь? Ну питонщиков лора ждет приятный сюрприз. А так - все норм, просто не пиши сто раз or None / is not None.

fs = request.GET.get('fields')
fs = list(param_fields.split(",")) if fs else None

хотя это херня какая-то. Если ты так хочешь получить repeated-GET-параметр, пользуйся getlist.

Ну и доку бы почитал опять сначала, а то завалишь лор сейчас своими бардачными вопросами: https://docs.djangoproject.com/en/3.0/ref/request-response/#django.http.QueryDict.getlist

cdshines ★★★★★
()
Последнее исправление: cdshines (всего исправлений: 1)
Ответ на: комментарий от AntonI

а хз, скопипастил из примера тса. и имя другое там) да и вообще - чуть ниже написал правильный способ.

cdshines ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.