回答
Django表單只能引發ValidationErrors(請參閱here)。解決這個問題的一種方法是使用new messaging system。定義了5個級別的消息,並具有定義其他自定義消息級別的功能。
至於抑制錯誤/警告,你總是可以忽略在你的模板form.errors
。還要看看錶格模塊中的clean
方法 - 您應該能夠抑制那裏的一些警告。
老問題,但我認爲它仍然相關。
這真的取決於你認爲是一個警告。
- 您可能會接受表單中的部分有效數據(不會在需要警告的字段上引發ValidationError)。然後,使用
contrib.messages
框架(或類似框架),您可以在下一頁上顯示警告框(可以是相同的表單頁面,也可以是重定向到主頁或任何其他頁面) 或者,您可能需要確認的警告。您可以在創建時動態地添加或更改字段,那麼爲什麼不添加隱藏的「我接受風險」複選框,只有當您的表單引發該警告時才需要?
- 用戶加載表單。複選框是一個隱藏的HTML輸入設置爲false。
- 用戶使用引發警告的數據填充表單。窗體再次顯示,但現在該複選框可見。
- 用戶複選框然後重新提交他們的表單。
- 服務器正確處理數據並忽略警告。
第二個選項不要求餅乾的優勢,而且還增加了交互性(用戶可能不想繼續,因爲該警告的...)。
在代碼中,你必須做的是這樣的:
#views.py
...
if form.is_valid():
# proceed
else:
form.fields["my_checkbox"].widget = widgets.CheckboxInput
# re-display form
...
#forms.py
...
def clean_myfield(self):
# do your cleaning
if (myfield_warning==True) and not (my_checkbox==True):
raise ValidationError("blabla")
else:
return myfield
在你看來,如果需要,您可以在form.errors查看相應的錯誤。
偉大的答案!我會建議覆蓋'clean'方法而不是'clean_myfield'方法來評估複選框是否使用'cleaned_data'進行檢查。 – Nagasaki45 2014-05-20 11:13:33
它也可以工作,但如果我記得,當您在'clean_
您仍然可以通過執行'self.add_error('my_field',message)在'clean'內的特定字段添加錯誤' – user857159 2017-08-15 14:51:36
- 1. 檢票信息,警告,錯誤信息
- 2. 如何使用requiredMessage屬性獲取警告消息而不是錯誤消息?
- 3. 只顯示錯誤和信息,而不是警告
- 4. Spring Framework - 顯示警告消息而不是錯誤
- 5. Django形式警告消息
- 6. 無法提示javaFX中的信息消息或警告消息/
- 7. 警告:array_combine()的錯誤信息
- 8. 警告消息
- 9. 區分Oracle錯誤和警告消息
- 10. WPF,處理錯誤和警告消息
- 11. WPF,處理錯誤和警告消息
- 12. 沒有得到錯誤信息,甚至有在MongoDB中
- 13. jQuery警告'未定義'的錯誤,而不是Java/Spring異常詳細信息
- 14. Rails的錯誤信息一直顯示,甚至在提交
- 15. ADBannerView警告消息
- 16. Tkinter警告消息中的「不再顯示消息」複選框
- 17. 警告信息的目的?
- 18. Firefox的警告信息
- 19. 在javascript/html中顯示錯誤消息而不使用警報
- 20. 機械化返回值的問題,甚至是錯誤信息,唉!
- 21. Log4j日誌記錄信息消息沒有記錄警告消息
- 22. Django刪除錯誤信息
- 23. iphone中的日誌錯誤和警告信息
- 24. 錯誤 - 警告:不能更改頭信息 - 已經
- 25. Spotfire - 錯誤消息「錯誤信息不再可用」
- 26. 壓制警告信息Akka.net
- 27. 如何查看node.js中的警告和錯誤消息?
- 28. Flex flex任務中的flex編譯器錯誤(警告)消息
- 29. 如何在NetBeans中顯示PHP的警告和錯誤消息?
- 30. Django permission_required錯誤消息?
現在的問題是四歲,仍然沒有好的解決方案發布。沒有解決?消息框架不起作用,因爲您希望看到輸入字段旁邊的警告。 – guettli 2014-08-13 07:50:30