我有以下領域在我的Django模型:爲什麼輸入數字時django pgm崩潰超過DecimalField max_digits?
price = models.DecimalField(max_digits=8, decimal_places=2, default=0)
,並在我的表格如下代碼:
price = forms.DecimalField(widget=forms.NumberInput(attrs={'step': '0.01', 'text-align': 'right;'}))
(順便說一句,文本對齊不起作用 - 不同的問題,我認爲)
它在窗體中顯示時有效。事實上,當我嘗試使用超過2位小數,形式彈出一個消息:
但是,如果我輸入了太多的數字,如:
的Django引發以下錯誤:
InvalidOperation at /balancer/set_security_prices/2017-10-14 []
Request Method: POST Request
URL: http://localhost:8000/balancer/set_security_prices/2017-10-14
Django Version: 1.9.1 Exception Type: InvalidOperation Exception
Value: [] Exception
Location: /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/django/db/backends/utils.py in format_number, line 200 Python Executable: /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 Python Version: 3.5.1
的is_valid()檢查我之前做保存數據不收集的問題。這對我沒有意義。 Django不應該防止這種情況發生,還是必須添加try ...except
代碼?
謝謝!通過瀏覽器生成
作品!雖然max的語法是'max':'999999'仍然不確定爲什麼Django會產生太多的小數位錯誤,但不會產生太多的位數錯誤。似乎應該。謝謝您的幫助! – Ben
等一下,也許這個「步驟」就是把那個小數位錯誤拋到上面。好吧,現在我覺得我很好。謝謝! – Ben
很高興爲您效勞。 –