Лучший способ ограничить данную строку белым списком - PullRequest
1 голос
/ 06 июня 2011

У меня есть настройка urlconf для перехвата / account / invoices / * /, и я хочу поймать несколько дополнительных определителей.В этом случае: неоплачено, оплачено, не учитывается.Я не выводил это, так что я думаю, что принятие ввода таким способом должно быть хорошо, но все же мне нужно внести белый список и перевести эти параметры в то, что ожидает API.Есть ли лучший способ сделать это (где переменная 'paid' входит в качестве аргумента представления)?

filter['unpaid'] = 0
filter['paid'] = 1
filter['disregarded'] = 2

if paid is in filter:
    paid = filter[paid]

Ответы [ 2 ]

1 голос
/ 06 мая 2013

Простое решение:

if paid in ['unpaid', 'paid', 'disregarded']

Ваше решение и DataGreed более многословны и требуют от вас создания значений для ваших элементов dict / object.

0 голосов
/ 07 июня 2011

Да, ваше решение хорошо. Но мне просто нравится dict.get немного больше:

enum = {
        'unpaid'      : 0,
        'paid'        : 1,
        'disregarded' : 2,
        }


def view(request, option):

    value = enum.get(option, None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...