我在 django 模板中有一个表单。在从此表单获取数据的视图中,我需要检查条目是“str”还是“int”。如果它是'str',我必须提出一个错误。但是当我使用以下方法检查条目的类型时:
pr = request.GET['pr no']
print "Type of PR:%s" % type(pr)
无论“pr”是字符串还是整数,type() 函数都会返回“unicode”。我该怎么做?谢谢
那么,显然.GET['pr no']
总是返回一个Unicode
对象。
可以测试该字符串是否包含整数:
if pr.isdigit(): # ASCII digits
或者
if pr.isnumeric(): # also Unicode digits
或者,你可以做
try:
int(pr)
except ValueError:
print "PR is not an integer"
或检查任何有效号码:
try:
float(pr)
except ValueError:
print "PR is not a number"
在html表单中,文本输入框用于输入整数值。因此,您在 python 视图中获得的值将始终是 unicode 字符串。
要实现您想要做的,您可以使用.isdigit()
unicode 字符串的方法进行测试。
例子:
>>> x=u'99A'
>>> x.isdigit()
False
>>> x=u'99'
>>> x.isdigit()
True
>>>
>>> x=u'A99'
>>> x.isdigit()
False
>>>
如果您使用 django 表单,您可能希望使用适当的表单字段(可能IntegerField
)并验证表单以获取错误。