将给定字符串限制为白名单的最佳方法

时间:2011-06-06 16:32:05

标签: python django

我有一个urlconf设置来捕获/ account / invoices / * /,并且我想要捕获一些可选的限定符。在这种情况下:无偿,有偿,无视。我没有输出这个,所以我认为以这种方式接受输入应该没问题,但我仍然需要白名单并将这些选项转换为API期望的内容。有没有更好的方法(变量'paid'作为视图参数出现?)

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

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

2 个答案:

答案 0 :(得分:1)

简单的解决方案:

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

您的解决方案和DataGreed更加冗长,需要您为dict / object元素组成值。

答案 1 :(得分:0)

是的,你的解决方案很好。但我只是喜欢dict.get:

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


def view(request, option):

    value = enum.get(option, None)