由于django formset错误,我有词典列表:
[{}, {"field": ["This field is required."]}, {"field": ["This field is required."]}]
我想创建一个字典,其中key是字典索引+字段名称,值是错误消息:
err = formset.errors
for dict in err:
for error in dict:
results[str(err.index(dict))+'-'+error] = dict[error]
问题是我只从错误中得到一个值,而不是全部。我怎么解决这个问题?感谢
答案 0 :(得分:2)
你非常接近。首先,我会使用枚举,因为它意味着要做什么。并使用iteritems(python 2.7)迭代dict。:
for idx, _dict in enumerate(err):
for error_key, error_value in _dict.iteritems():
results[str(idx)+'-' + error_key] = error_value
print results
我得到了:
{' 1-field':['此字段为必填项。'],' 2-field':['此字段为。需要']}
*正如评论中所述 - 不要使用dict
,因为它在python上保留了单词。
答案 1 :(得分:0)
err = formset.errors
D = {}
for i in len(err):
crr_field = err[i].keys()[0]
error_msg = "{field} error: {error}".format(field=crr_field,error=err[i][crr_field])
D[i] = error_msg
D将为{1:"Field field1 error: field is required",2:....}
答案 2 :(得分:0)
试试这个
results = {}
err = formset.errors
for i, my_dict in enumerate(err):
for key, value in my_dict.items():
results[str(i)+'-'+key] = value
items()
适用于python3,因为iteritems()
已被删除。