我在django模板中有一個表單。在從這個表單獲取數據的視圖中,我需要檢查條目是'str'還是'int'。如果它是'str',我不得不提出一個錯誤。但是,當我通過使用檢查條目的類型:從django模板'int'或'str'決定值
pr = request.GET['pr no']
print "Type of PR:%s" % type(pr)
不管「PR」是字符串或整數,式()函數返回「的unicode」的。我該如何解決它? 謝謝
我在django模板中有一個表單。在從這個表單獲取數據的視圖中,我需要檢查條目是'str'還是'int'。如果它是'str',我不得不提出一個錯誤。但是,當我通過使用檢查條目的類型:從django模板'int'或'str'決定值
pr = request.GET['pr no']
print "Type of PR:%s" % type(pr)
不管「PR」是字符串或整數,式()函數返回「的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字符串。
要實現你想要做的事情,你可以使用unicode字符串的.isdigit()
方法進行測試。
例子:
>>> x=u'99A'
>>> x.isdigit()
False
>>> x=u'99'
>>> x.isdigit()
True
>>>
>>> x=u'A99'
>>> x.isdigit()
False
>>>
如果您正在使用Django的形式,您可能需要使用適當的表單字段(可能IntegerField
)和驗證的形式出現錯誤。
嗨蒂姆,我已經改變var名稱_,請原諒大膽。 – danihp
@danihp:沒問題,你的編輯讓我意識到根本不需要任何任務。 –