0

我期待POST数据,并希望创建一个自定义字典,以便在根据发布的内容创建表单时使用。我似乎在尝试比较 POST 数据中的内容时遇到了问题。我在 Ubuntu 12.04 上使用 Django 1.4 和 Python 2.7。

假设我有一个POST名为的字段return_method,它将告诉我客户期望的返回方法类型。他们要么发送值post,要么发送get. 现在,我想根据我得到的值以不同的方式创建字典。

if (request.POST.get('return_method') == 'get'):
    cust_dict = { 'key1' : value1,
                  'key2' : value2,
                  'key3' : value3,
                }

elif (request.POST.get('return_method') == 'post'):
    cust_dict = { 'key1' : value1,
                  'key2' : value2,
                  'key3' : another_value,
                }

这是行不通的。我正在填充该字段,get并且没有创建任何字典。

你会建议我做什么呢?

编辑:看来我的问题是我的更改没有在 Django 服务器上更新。(必须重新启动 Apache)

4

2 回答 2

1
 cust_dict = { 'key1' : value1,
               'key2' : value2,
             }


if request.POST.get('return_method') == 'get'): 
  cust_dict['key3'] = value3
elif request.POST.get('return_method') == 'post):
  cust_dict['key3'] = another_value

如果key3没有被添加到您的cust_dict然后值return_method既不是get也不是post

于 2012-07-16T15:08:42.597 回答
1

这是我将如何处理它。

custom = {
  "get" : {
    'key1' : value1,
    'key2' : value2,
    'key3' : value3,
  },

  "post" : {
    'key1' : value1,
    'key2' : value2,
    'key3' : another_value,
  },
}

try:
    cust_dict = custom[request.POST.get('return_method').strip()]
except KeyError:
    # .. handle invalid value

也就是说,您的版本没有理由不起作用。你检查过你看到的价值request.POST.get('return_method')吗?也许值中有空格会阻碍您的字符串匹配(请注意.strip()上面的示例代码)。

于 2012-07-16T15:10:30.913 回答