[英]How to tell if there is a missing item in request.REQUEST in Django
我有五个要检查的键在request.REQUEST中。 因此,我想确保first_name,last_name,年龄,性别和位置都在request.REQUEST中。 然后,如果一个或多个不存在,我想告诉您缺少哪些属性。
有没有一种方法,而无需使用大量的if语句?
创建所需的一组键,以及返回的一组键,并将它们相交:
expected = set(['first_name', 'last_name', 'age'])
got = set(request.REQUEST.keys())
if expected.issubset(got):
# Request contained everything you expected
# Bonus points: check if field was present but empty
for field in got:
if request.REQUEST[field].strip() == "":
# Field was present but empty
else:
# Some things were different
print expected.difference(got)
您还可以使用不同的方法对expected
在开始的时候。 在这里,我检查了expected
是got
的子集,因此got
可能包含的内容超出了预期。 如果要检查它们是否完全相同,请将其更改为:
if len(expected.difference(got)) == 0:
(即,如果两者之间的差异为零)。
但实际上,您应该使用Django的内置Forms 。 做这样的事情要好得多。
missing_keys = []
for i in ('item1', 'item2', 'item3'):
if i not in request.REQUEST:
missing_keys.append(i)
import sets
missing = sets.Set(request.REQUEST.keys()).difference(['first_name', 'last_name', ...])
使用内置集进行更新:
set(request.REQUEST.keys()).difference(['first_name', 'last_name', ...])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.