我有一个urlconf设置来捕获/ account / invoices / * /,并且我想要捕获一些可选的限定符。在这种情况下:无偿,有偿,无视。我没有输出这个,所以我认为以这种方式接受输入应该没问题,但我仍然需要白名单并将这些选项转换为API期望的内容。有没有更好的方法(变量'paid'作为视图参数出现?)
filter['unpaid'] = 0
filter['paid'] = 1
filter['disregarded'] = 2
if paid is in filter:
paid = filter[paid]
答案 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)